如何在没有root访问权限的情况下设置npm(节点包管理器)?

时间:2010-09-15 15:06:42

标签: javascript node.js npm

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

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

  1. 创建.npmrc文件,其中rootbinrootmanroot指向用户拥有的文件夹。
  2. 然后运行安装脚本。
  3. 行。安装很好。

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

    那么如何让节点知道npm提供的包? (当我以前以root身份安装npm时,我没有做任何事情)。 我可以在节点内设置require.paths,或设置NODE_PATH环境变量,但是要设置什么?

    感谢。

2 个答案:

答案 0 :(得分:5)

通过一点探索,似乎你可以:

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

答案 1 :(得分:4)

这对我有用:

  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"
    
  4. 现在我可以执行npm -g install http-server之类的操作,它将在没有root的情况下安装到~/.node。有了这个,当我输入http-server时,它会运行。