你如何设置npm(节点包pipe理器)没有root权限?
以root用户身份设置npm是直接的,并且是workds。 除了你必须以root身份运行npm命令(不推荐)。 所以我想我会尝试设置为非root用户。
根据npm文档,没有root权限的非root用户可以通过以下方式设置npm:
- 用
root
,binroot
和manroot
创build一个.npmrc
文件,指向用户拥有的文件夹。 - 然后运行安装脚本。
好。 安装很好。
但节点无法看到由npm提供的软件包。
那么如何让节点知道npm提供的软件包呢? (当我以root身份安装npm时,我不必做任何事情)。 我可以在节点中设置require.paths
,或者设置NODE_PATH
环境variables,但是是什么?
谢谢。
通过一点探索,看来你可以:
- 把你的
NODE_PATH
设置为npm的根目录,或者 - 而在节点中,调用
require.paths.push('path_to_npm_root')
这对我工作:
-
制作一个
~/.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
这样的东西了,它会安装到~/.node
而没有root权限。 有了这个,当我然后键入http-server
,它运行。