全局安装一个npm模块…然后节点找不到它

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

//test.js

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

…如果我运行这个,它将无法findzmq包,即使我全球安装。 为了使脚本正常工作,我必须运行npm install zmq而不使用-g标志,这会在同一目录中创build一个node_modules文件夹。 我不想要那个node_modules文件夹。

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

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

我错过了什么?

从npm的网站 :

  • 本地安装(默认):将东西放在当前软件包根目录的./node_modules中。
  • 全局安装(使用-g):把东西放在/ usr / local或安装节点的地方。
  • 如果你打算要求()它在本地安装。
  • 如果要在命令行上运行它,请全局安装它。

它是以这种方式构build的,以便每个项目都可以保持独立的依赖关系,而且在全球范围内尝试确定哪个版本适用于哪个项目时没有任何问题。

我不确定有什么办法可以做你想做的事情,我不认为这会被推荐,即使有。

希望这可以帮助!