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,但它没有解决我的问题,仍然得到同样的错误.
解决方法
>选项1:将权限更改为npm的默认目录
>找到npm目录的路径:
对于许多系统,这将是/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
>返回命令行,更新系统变量:
来源〜/ .profile
测试:在不使用sudo的情况下全局下载软件包.
`npm install node-g.raphael --save`
您可以使用相应的ENV变量(例如,如果您不想修改〜/ .profile),而不是步骤2-4:
NPM_CONfig_PREFIX=~/.npm-global
>选项3:使用包管理器为您处理此问题.
如果您在Mac OS上进行全新的Node安装,可以使用Homebrew包管理器完全避免此问题. Homebrew使用正确的权限开箱即用.
brew安装节点
我希望这有帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。