我正在尝试安装node-g.raphael,并且出现以下错误:
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
我已经尝试过此解决方案,但仍不能解决我的问题,仍然遇到相同的错误。
让我知道我是否可以添加任何帮助解决此问题的方法。
从Fixing npm权限中看到了这一点,它很有帮助,也许您也可以尝试一下。
npm config get prefix
对于许多系统,这将是/usr/local。
/usr/local
警告 :如果显示的路径是/usr,请切换到 选项2, 否则您将弄乱您的权限。
/usr
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
这改变了由NPM使用的子文件夹的权限和一些其他的工具(lib/node_modules,bin,和share)。
lib/node_modules
bin
share
有时候,您不想更改npm使用的默认目录的所有权(例如/usr),因为这可能会导致一些问题,例如,如果您要与其他用户共享系统。
相反,您可以将npm配置为完全使用其他目录。在我们的情况下,这将是我们主文件夹中的隐藏目录。
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
~/.profile
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
测试 :不使用全局下载软件包sudo。
sudo
`npm install node-g.raphael --save`
可以使用相应的ENV变量代替步骤2-4(例如,如果您不想修改~/.profile):
NPM_CONFIG_PREFIX=~/.npm-global
如果要在Mac OS上全新安装Node,则可以使用Homebrew程序包管理器完全避免此问题。Homebrew使用正确的权限开箱即用地进行设置。
Homebrew
brew install node
我希望这有帮助