11

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

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

  1. 使用、和指向用户拥有的文件夹创建.npmrc文件。rootbinrootmanroot
  2. 然后运行安装脚本。

好的。安装很好。

但是node看不到npm提供的包。

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

谢谢。

4

2 回答 2

6

这对我有用:

  1. 做一个~/.node文件夹

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

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

于 2015-09-28T18:33:31.340 回答
5

通过一些探索,您似乎可以:

  1. 将您设置NODE_PATH为 npm 的根目录,或者
  2. 在节点中,调用require.paths.push('path_to_npm_root')
于 2010-09-18T04:08:02.550 回答