node.js模块路径

时间:2012-11-20 02:40:17

标签: node.js npm

我意识到当我进行node.js模块的全局安装(带有-g标志)时,除非我编写了整个路径,否则节点无法使用该模块。

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

cheerio = require('cheerio'),

我必须写下:

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

如何向节点说它必须在正确的路径中寻找模块?

谢谢。

5 个答案:

答案 0 :(得分:49)

一般来说,我建议让npm给你路径并设置如上所述:

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

答案 1 :(得分:16)

对于Windows平台的用户,请在系统变量中将其添加到PATH中:

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

PS:在Windows 8.1上测试

答案 2 :(得分:15)

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

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

答案 3 :(得分:7)

对于安装了ZSH的人:

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

答案 4 :(得分:0)

更好的方法是在js文件中设置模块路径。

在我的情况下,我在/ usr / etc运行npm install mysql,mysql将显示在&#34; / usr / etc / node_modules&#34;中,所以这是正确的路径:

var mysql = require('/usr/etc/node_modules/mysql');