我正在尝试安装node-g.raphael
,我收到以下错误:
Bender-03:htdocs alfred$ sudo npm install node-g.raphael --save
Password:
> contextify@0.1.15 install
/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
> node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir
'/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify/build'
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/bin/node"
"/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"
"rebuild"
gyp ERR! cwd
/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
gyp ERR! node -v v8.8.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: contextify@0.1.15
(node_modules/contextify):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: contextify@0.1.15
install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ node-g.raphael@0.0.9
added 2 packages and updated 1 package in 6.556s
我已经尝试了this solution,但它并没有解决我的问题,仍然遇到同样的错误。
请告诉我是否可以添加任何内容来帮助解决此问题。
答案 0 :(得分:80)
从Fixing npm permissions看到这个并且它有所帮助,也许你也可以试一试。
选项1:将权限更改为npm的默认目录
找到npm&#39目录的路径:
npm config get prefix
对于许多系统,这将是/usr/local
。
警告:如果显示的路径只是/usr
,请切换到选项2 ,否则您将失去权限。
将npm目录的所有者更改为当前用户的名称(您的用户名):
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
这会更改npm和其他一些工具(lib/node_modules
,bin
和share
)使用的子文件夹的权限。
有些时候您不想更改npm使用的默认目录的所有权(即/usr
),因为这可能会导致一些问题,例如,如果您与其他用户共享系统。
相反,您可以配置npm以完全使用其他目录。在我们的例子中,这将是我们的主文件夹中的隐藏目录。
为全局安装创建目录:
mkdir ~/.npm-global
配置npm以使用新目录路径:
npm config set prefix '~/.npm-global'
打开或创建~/.profile
文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
返回命令行,更新系统变量:
source ~/.profile
测试:全局下载包,但不使用sudo
。
`npm install node-g.raphael --save`
代替步骤2-4,您可以使用相应的ENV变量(例如,如果您不想修改~/.profile
):
NPM_CONFIG_PREFIX=~/.npm-global
如果您在Mac OS上重新安装Node,则可以使用Homebrew
程序包管理器完全避免此问题。 Homebrew
使用正确的权限设置开箱即用。
brew install node
我希望这会有所帮助
答案 1 :(得分:1)
我使用:
npm config get prefix
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
sudo npm install
答案 2 :(得分:0)
通过运行以下命令为我解决此问题。
sudo npm install -g @ angular / cli
能够安装角铁。
然后尝试运行ng -v进行确认。
答案 3 :(得分:0)
我不建议您更改文件许可权并冒着系统混乱的风险(我已经做过,以后可能会后悔),我还是建议您在事后发现以下内容。
Resolving EACCES permissions errors when installing packages globally
答案 4 :(得分:-1)
要在Mac / Linux上进行访问,只需使用此命令
sudo npm install -g {package_name}
你很好。