node.js模块路径

Mar*_*rio 37 node.js npm

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

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

cheerio = require('cheerio'),
Run Code Online (Sandbox Code Playgroud)

我必须写下:

cheerio = require('/usr/lib/node_modules/cheerio'),
Run Code Online (Sandbox Code Playgroud)

我怎么能对节点说它必须在正确的路径中寻找模块?

谢谢.

ink*_*nki 50

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

$ echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)


Vik*_*ari 16

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

C:\Users\<username>\AppData\Roaming\npm
Run Code Online (Sandbox Code Playgroud)

PS:在Windows 8.1上测试过

  • 您必须在Users \和\ AppData之间包含"UserName".此配置应包含在您的usser系统变量中.然后,您需要关闭会话并重新启动以查看控制台中的更改 (2认同)
  • 快捷方式%appdata%指向当前用户的AppData\Roaming目录(至少在Windows 7中),因此您可以使用%appdata%\npm (2认同)

Err*_*ald 15

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

export NODE_PATH=/usr/lib/node_modules:$NODE_PATH
Run Code Online (Sandbox Code Playgroud)

  • 见http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders (3认同)

Dan*_*ber 7

对于安装了ZSH的人:

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