我的问题是node.js的包引用机制是怎么样的? 如何安装和配置让Moudle可以通过require(‘xxx’)的方式引用 或者说让 module.paths 会引用一个我希望的公共目录
我操作如下 在Windows里面部署node.js
1、MSI安装在 C:\Program FilesNodejs
2、环境变量PATH配好 node -v 0.6.14 npm --version 1.1.15 3、顺利用git安装npm 到C:\Program Files\nodejs\npm 然后在npm目录 install socket.io 文件应该下载到了 C:\Program Files\nodejs\npm\node_modules 但是测试时 一旦requires某个包 例如
var io = require(‘socket.io’).listen(8080);
node D:\www\server.js 就会报错cannot find moudel “xxx”
我已经尝试 1、在C:\Program Files\nodejs(安装目录)npm install ----增加了一个 C:\Program Files\nodejs\node_modules目录,里面有socket.io,但是报错依然
2、配置环境变量NODE_PATH到 C:\Program Files\nodejs\node_modules –无变化
3、在程序目录拷贝了一个socket.io –正常执行通过了
以上操作后,我都console.log(module.paths)了一下,输出的都是程序目录的路径 例如D:\node_modules\ ,D:\www\node_modules 等 如何才能加入 我希望的安装目录(C:\Program Files\nodejs\node_modules)?
npm install socket.io 应该是在你的项目目录下执行
那如果我想在全局增加某个模块呢?)也就是每个项目不单独建立node_modules
npm install socket.io -g
@sevencity npm install -gd 和npm link 可以用npm help link 看下指令说明. g代表全局, d代表相关依赖. 但是安装到全局后, 如果没有配置NODE_PATH环境变量,好像也不行