设置npm为root用户是直接的并且工作。除非您必须以root身份运行npm命令(不推荐)。所以我想我会尝试将其设置为非root用户。
根据npm文档,没有root访问权限的非root用户可以通过以下方式设置npm:
.npmrc
文件,其中root
,binroot
和manroot
指向用户拥有的文件夹。 行。安装很好。
但节点无法看到npm提供的包。
那么如何让节点知道npm提供的包? (当我以前以root身份安装npm时,我没有做任何事情)。
我可以在节点内设置require.paths
,或设置NODE_PATH
环境变量,但是要设置什么?
感谢。
答案 0 :(得分:5)
通过一点探索,似乎你可以:
NODE_PATH
设置为npm的根目录,或require.paths.push('path_to_npm_root')
答案 1 :(得分:4)
这对我有用:
制作~/.node
文件夹
mkdir ~/.node
修改~/.npmrc
并添加第
prefix = ~/.node
修改您的~/.profile
或~/.bash_profile
并添加以下行
PATH="$HOME/.node/bin:$PATH"
NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
现在我可以执行npm -g install http-server
之类的操作,它将在没有root的情况下安装到~/.node
。有了这个,当我输入http-server
时,它会运行。