错误:EACCES:权限被拒绝,访问“/usr/local/lib/node_modules”

新手上路,请多包涵

什么可能导致错误 Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

 npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log

原文由 hendra dedi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

更改您的文件权限…像这样

首先检查谁拥有该目录

ls -la /usr/local/lib/node_modules

它拒绝访问,因为 node_module 文件夹归根用户所有

drwxr-xr-x   3 root    wheel  102 Jun 24 23:24 node_modules

所以这需要通过将root更改为您的用户来更改,但首先运行下面的命令以检查您当前的用户 如何通过OS X中的命令行获取活动用户的名称?

id -unwhoami

然后更改所有者

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules

或者

sudo chown -R ownerName: /usr/local/lib/node_modules

或者

sudo chown -R $USER /usr/local/lib/node_modules

原文由 okandas 发布,翻译遵循 CC BY-SA 4.0 许可协议

为了尽量减少权限错误的可能性,您可以将 npm 配置为使用不同的目录。在此示例中,您将在您的主目录中创建和使用一个隐藏目录。

备份您的计算机。在命令行上,在您的主目录中,为全局安装创建一个目录:

 mkdir ~/.npm-global

配置 npm 以使用新的目录路径:

 npm config set prefix '~/.npm-global'

在您首选的文本编辑器中,打开或创建 ~/.profile 文件并添加以下行:

 export PATH=~/.npm-global/bin:$PATH

在命令行上,更新您的系统变量:

 source ~/.profile

要测试您的新配置,请在不使用 sudo 的情况下全局安装一个包。


资料来源:NPM 网站

原文由 Naveen Raju 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题