是什么原因导致错误: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

当前回答

在CentOS 8流中遇到

解决方案

(1/4)创建node_modules文件夹

$ sudo mkdir /usr/local/lib/node_modules

(2/4)与当前用户共同拥有

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

(3/4)拥有bin文件夹

$ sudo chown -R $USER /usr/local/bin/

(4/4)拥有共享文件夹

$ sudo chown -R $USER /usr/local/share/

其他回答

下面的命令对我有用:

sudo npm install -g appium --unsafe-perm=true --allow-root

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

首先检查谁拥有这个目录

ls -la /usr/local/lib/node_modules

它拒绝访问,因为node_module文件夹属于root用户

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

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

id -un或者whoami

然后换主人

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

OR

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

OR

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

如果在授予权限后仍然不工作,请尝试运行这些命令:

mkdir ~/.npm-global

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

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

source ~/.profile

最后用这个命令进行测试

NPM install -g jshint

这对Windows不起作用。

我得到了同样的错误,并解决它使用命令

Sudo NPM install -g expo-cli——unsafe-perm

在运行命令后的图像中

然后执行以下命令更新NPM

NPM install -g npm@latest

我很容易就解决了这个问题。

您可以简单地更改所有者,或者在执行这样的命令之前使用sudo

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules(更改owner)

or

sudo npm install -g json-server

就是这样。