Setting npm up as the root user is straighforward and workds. Except you have to run npm commands as root (not recommended). So I thought I'd try setting it up as a non-root user.
According to npm documentation, a non-root user without root access can set up npm by:
- creating a
.npmrcfile withroot, 开发者_Go百科binroot, andmanrootpointing to folders that the user owns. - Then running the install script.
OK. Install was fine.
But node can't see the packages provided by npm.
So how do I make node aware of the packages provided by npm? (I didn't have to do anything when I previously installed npm as root).
I can set require.paths within node, or set the NODE_PATH environment variable, but to what?
Thanks.
This worked for me:
Make a
~/.nodefoldermkdir ~/.nodeEdit
~/.npmrcand add the lineprefix = ~/.nodeEdit your
~/.profileor~/.bash_profileand add these linesPATH="$HOME/.node/bin:$PATH" NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
Now I can do things like npm -g install http-server and it will install to ~/.node without root. With this in place, when I then type http-server, it runs.
Through a little exploration, it seems you can either:
- set your
NODE_PATHto whatever npm's root directory is, or - while in node, invoke
require.paths.push('path_to_npm_root')
加载中,请稍侯......
精彩评论