全局安装npm模块...然后节点无法找到它

时间:2015-05-04 22:33:16

标签: node.js npm

我用npm install -g zmq安装了名为zmq的模块 假设我在一个新目录中,并创建一个简单的node.js文件:

// test.js

var zmq = require('zmq');
console.log(zmq);

...如果我运行它,它将无法找到zmq包,即使我在全局安装它。为了使脚本工作,我必须运行npm install zmq而不使用-g标志,这会在同一目录中创建一个node_modules文件夹。我不想在那里找到node_modules文件夹。

我没有看到-g标志的用途,因为我的节点程序似乎都没有运行node_modules文件夹。

我在Mac上,但我在Windows和Linux上遇到了同样的问题。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

来自npm' s website

  
      
  • 本地安装(默认):将东西放入当前包根目录的./node_modules中。
  •   
  • 全局安装(使用-g):将内容放入/ usr / local或安装节点的任何位置。
  •   
  • 如果您需要(),请在本地安装。
  •   
  • 如果您要在命令行上运行它,请全局安装。
  •   

它以这种方式构建,以便每个项目都可以保持单独的依赖关系,并且您在尝试找出哪个版本与全球级别的项目相关时没有任何问题。

我不确定是否有办法做你想做的事情,我也不认为这会被推荐,即使有。

希望这有帮助!

相关问题