node.js模块path

我意识到,当我做了一个node.js模块的全局安装(使用-g标志),节点不能使用该模块,除非我写了整个path。

我的意思是,如果模块已经全局安装,这不起作用:

cheerio = require('cheerio'), 

我必须这样写:

 cheerio = require('/usr/lib/node_modules/cheerio'), 

我怎么能说节点,它必须在正确的path寻找模块?

谢谢。

一般来说,我build议让npm给你的path和设置,如上所述:

 $ echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile 

您可以将以下内容添加到〜/ .bash_profile:

 export NODE_PATH=/usr/lib/node_modules:$NODE_PATH 

对于那些在Windows平台中添加这个到系统variables中的PATH:

 C:\Users\<username>\AppData\Roaming\npm 

PS:在Windows 8.1上testing

对于安装了ZSH的人员:

echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.zshrc && . ~/.zshrc