是什么原因导致错误:EACCES:权限被拒绝,访问'/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

当前回答

只有这样:

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

其他回答

如果你在Mac上遇到了这个问题,请遵循以下步骤

首先检查谁是这个文件的所有者使用以下命令

ls -la /usr/local/lib/node_modules

你会在下面找到一些文件其中一个在下面

drwxr-xr-x   3 root    wheel  768 May 29 02:21 node_modules

你有没有注意到上面的文件是由root拥有的,为了在里面做改变,你需要改变所有者的路径。

该命令用于检查谁是当前用户

id -un (in my case user is yamsol)

然后您可以通过调用这个命令来更改(只需将您的用户名替换为ownerName)

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

在我的例子中,你知道用户是“yamsol”,我将以这种方式调用这个命令

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

这是它。

我试图安装react博览会,除了sudo,我必须添加-不安全的烫发

像这样。这解决了我的问题

sudo npm install -g expo-cli --unsafe-perm

在我的情况下,它工作,即我想要npm链接,所以当我点击sudo npm链接它工作

sudo npm install

因为sudo为您提供了超级用户级别的权限。 超级用户帐户通常被称为“管理员”。在Linux/Unix中,超级用户帐户通常命名为“root”。

root用户拥有访问、修改或删除计算机上几乎所有文件的权限。普通用户帐户可以访问、修改或删除的文件要少得多。对普通帐户的限制可保护您的计算机免受未经授权或有害程序或用户的侵害。

尝试在您尝试的任何命令之前添加sudo。

像这样:sudo NPM install

在Linux/UNIX中,将sudo与命令一起使用通常会将权限提升到超级用户级别。在Windows系统中,超级用户帐户通常被称为“Administrator”。在Linux/Unix中,超级用户帐户通常命名为“root”。

root用户拥有访问、修改或删除计算机上几乎所有文件的权限。普通用户帐户可以访问、修改或删除的文件要少得多。对普通帐户的限制可保护您的计算机免受未经授权或有害程序或用户的侵害。有些进程要求您对通常没有访问权限的文件或文件夹执行操作。安装一个每个人都可以访问的程序就是这些操作之一。

在本例中,使用sudo运行安装命令可以为您提供超级用户的权限,并允许您修改普通用户没有权限修改的文件。

它是100%的工作

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}