node.js modules path

2019-01-30 15:12发布

问题:

I realised that when I did a global installation of a node.js module (with the -g flag) node couldn't use that module unless I wrote the entire path.

I mean, this doesn't work if the module has been globally installed:

cheerio = require('cheerio'),

I have to write that:

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

How can I say to node that it has to look for the modules in the right path?

Thank you.

回答1:

In general, I would suggest letting npm give you the path and set that as mentioned above:

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


回答2:

You can add the following to ~/.bash_profile:

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


回答3:

For those in Windows platform add this to your PATH in system variables:

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

PS: Tested on Windows 8.1



回答4:

For people with ZSH installed:

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



回答5:

The better way is to set the modules path in your js file.

In my case, i ran npm install mysql at /usr/etc, mysql will shown in "/usr/etc/node_modules", so this is the right path:

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


标签: node.js npm