您如何在没有根访问的情况下设置NPM(节点软件包管理器)?
-
02-10-2019 - |
题
将npm设置为root用户直接和锻炼。除了您必须以root(不建议)运行NPM命令。因此,我认为我会尝试将其设置为非root用户。
根据NPM文档,没有根访问的非root用户可以通过以下方式设置NPM
- 创建一个
.npmrc
文件root
,binroot
, , 和manroot
指向用户拥有的文件夹。 - 然后运行安装脚本。
好的。安装很好。
但是节点看不到NPM提供的软件包。
那么,如何使节点知道NPM提供的软件包? (当我以前将NPM作为root安装时,我不必做任何事情)。我可以设置 require.paths
在节点内,或设置 NODE_PATH
环境变量,但是什么呢?
谢谢。
解决方案
通过一些探索,似乎您可以:
- 设置你的
NODE_PATH
无论NPM的根目录是什么,或 - 在节点中,调用
require.paths.push('path_to_npm_root')
其他提示
这对我有用:
做一个
~/.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
, ,它运行。
不隶属于 StackOverflow