将npm设置为root用户直接和锻炼。除了您必须以root(不建议)运行NPM命令。因此,我认为我会尝试将其设置为非root用户。

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

  1. 创建一个 .npmrc 文件 root, binroot, , 和 manroot 指向用户拥有的文件夹。
  2. 然后运行安装脚本。

好的。安装很好。

但是节点看不到NPM提供的软件包。

那么,如何使节点知道NPM提供的软件包? (当我以前将NPM作为root安装时,我不必做任何事情)。我可以设置 require.paths 在节点内,或设置 NODE_PATH 环境变量,但是什么呢?

谢谢。

有帮助吗?

解决方案

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

  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 没有根。有了这个,当我输入时 http-server, ,它运行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top