你如何设置npm(节点包pipe理器)没有root权限?

以root用户身份设置npm是直接的,并且是workds。 除了你必须以root身份运行npm命令(不推荐)。 所以我想我会尝试设置为非root用户。

根据npm文档,没有root权限的非root用户可以通过以下方式设置npm:

  1. rootbinrootmanroot创build一个.npmrc文件,指向用户拥有的文件夹。
  2. 然后运行安装脚本。

好。 安装很好。

但节点无法看到由npm提供的软件包。

那么如何让节点知道npm提供的软件包呢? (当我以root身份安装npm时,我不必做任何事情)。 我可以在节点中设置require.paths ,或者设置NODE_PATH环境variables,但是是什么?

谢谢。

通过一点探索,看来你可以:

  1. 把你的NODE_PATH设置为npm的根目录,或者
  2. 而在节点中,调用require.paths.push('path_to_npm_root')

这对我工作:

  1. 制作一个~/.node文件夹

     mkdir ~/.node 
  2. 编辑~/.npmrc并添加行

     prefix = ~/.node 
  3. 编辑~/.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 ,它运行。