是什么原因导致错误: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
我可以通过安装nvm来解决这个问题,然后将node设置为最新版本。
使用curl安装nvm(最新版本请到nvm.sh)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
列出可用节点版本
nvm ls
v10.12.0
默认值-> v10.12 (-> v10.12.0)
节点->稳定(-> v10.12.0)(默认)
稳定-> 10.12 (> v10.12.0)
...
选择要使用的节点版本
nvm use v10.12
NVM不兼容NPM配置“前缀”选项:当前设置为“”
运行此命令取消设置该选项:
nvm use --delete-prefix v10.12.0
按照上面的命令,你就可以在Ubuntu中安装react/angular了。
为了尽量减少权限错误的机会,你可以配置npm使用不同的目录。在本例中,您将在主目录中创建并使用一个隐藏目录。
备份你的电脑。
在命令行中,在你的主目录中,创建一个用于全局安装的目录:
mkdir ~/.npm-global
配置npm使用新的目录路径:
npm config set prefix '~/.npm-global'
在您首选的文本编辑器中,打开或创建~/。配置文件,并添加这一行:
export PATH=~/.npm-global/bin:$PATH
在命令行,更新你的系统变量:
source ~/.profile
要测试新配置,请在不使用sudo的情况下全局安装一个包。
资料来源:NPM网站。
更改您的文件权限…像这样
首先检查谁拥有这个目录
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
我可以通过安装nvm来解决这个问题,然后将node设置为最新版本。
使用curl安装nvm(最新版本请到nvm.sh)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
列出可用节点版本
nvm ls
v10.12.0
默认值-> v10.12 (-> v10.12.0)
节点->稳定(-> v10.12.0)(默认)
稳定-> 10.12 (> v10.12.0)
...
选择要使用的节点版本
nvm use v10.12
NVM不兼容NPM配置“前缀”选项:当前设置为“”
运行此命令取消设置该选项:
nvm use --delete-prefix v10.12.0
按照上面的命令,你就可以在Ubuntu中安装react/angular了。