如何设置无root权限的npm(节点包管理器)?
问题描述:
以root用户身份设置npm是直接的。除了你必须以root身份运行npm命令(不推荐)。所以我想我会尝试将其设置为非root用户。如何设置无root权限的npm(节点包管理器)?
据NPM文件,而无需root访问非root用户可以通过设置NPM:
- 创建
.npmrc
文件,root
,binroot
,并且manroot
指向用户拥有的文件夹。 - 然后运行安装脚本。
好的。安装很好。
但节点无法看到npm提供的软件包。
那么如何让节点知道npm提供的软件包呢? (当我以前以root身份安装npm时,我不必做任何事情)。 我可以在节点内设置require.paths
,或者设置NODE_PATH
环境变量,但是要什么?
谢谢。
答
通过一点点的探索,看来你可以:
- 设置你的
NODE_PATH
到任何NPM的根目录,或 - 而在节点,调用
require.paths.push('path_to_npm_root')
+0
如果您想从repl中调试它,请参阅http://github.com/ry/node/issues/封闭#问题/ 303 – keturn 2010-09-27 18:06:13
答
这个工作对me:
-
Make a
~/.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
没有根。有了这个,当我输入http-server
时,它就会运行。
现在没有npm与节点?我从来没有必要以root身份运行npm commans,除非我使用-g ... – tjameson 2012-11-17 00:44:46