将捆绑依赖关系推广到全局模块的一种显而易见的方法是将目录从node_modules/foo/node_modules/baz
移动到node_modules/baz
但是所有我必须做什么?是否有秘密握手,没有它就会出现神秘的错误?
(虽然我问的是/否问题:我注意到npm会将node_module放在我刚才遇到的任何目录下。这是预期的行为 - 我可以看到它对递归安装有用吗依赖 - 或者我没有讽刺意味,搞乱了npm的安装?)
(说到有关混乱安装的是/否问题,我的节点安装不会自动查找自己的 node_modules目录,我不得不将其添加到NODE_PATH。这是预期的行为吗?)
经过两天node.js的评价:很棒的产品,我不明白为什么它不比它更受欢迎 - 我通过解决一个绝对无法解决的问题的方式标准的Apache / Tomcat系统我已经习惯了 - 但是很难找到像上面这样简单问题的答案,而不是大图片(“我如何连接到MySQL?”“我如何进行负载平衡?“)
答案 0 :(得分:0)
从版本1.0开始,npm改变了它在Global / Local方面的安装方式。
简短的回答是,如果要全局安装模块,可以使用-g
标志。
npm install awesome-module -g
如果您想在本地使用它,请删除-g
标记。
如果您希望仅在全局安装模块,可以添加
"preferGlobal": true
到package.json
就您的第二个问题而言,是的,将node_module
放在您所在的目录中是预期的行为,这是本地安装的一部分。
链接到npm 1.0发布博客:http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/