如何将捆绑依赖项提升为全局模块?

时间:2011-08-14 14:14:16

标签: node.js npm

将捆绑依赖关系推广到全局模块的一种显而易见的方法是将目录从node_modules/foo/node_modules/baz移动到node_modules/baz但是所有我必须做什么?是否有秘密握手,没有它就会出现神秘的错误?

(虽然我问的是/否问题:我注意到npm会将node_module放在我刚才遇到的任何目录下。这是预期的行为 - 我可以看到它对递归安装有用吗依赖 - 或者我没有讽刺意味,搞乱了npm的安装?)

(说到有关混乱安装的是/否问题,我的节点安装不会自动查找自己的 node_modules目录,我不得不将其添加到NODE_PATH。这是预期的行为吗?)

经过两天node.js的评价:很棒的产品,我不明白为什么它不比它更受欢迎 - 我通过解决一个绝对无法解决的问题的方式标准的Apache / Tomcat系统我已经习惯了 - 但是很难找到像上面这样简单问题的答案,而不是大图片(“我如何连接到MySQL?”“我如何进行负载平衡?“)

1 个答案:

答案 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/