是什么原因导致错误: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
如果你正在运行Linux(如:Arch)
# npm -g install packageName
默认情况下,该命令将包安装在/usr/lib/node_modules/npm下,并且需要root权限才能这样做。
允许用户范围的安装
要允许为当前用户安装全局包,请设置npm_config_prefix环境变量。npm和yarn都使用这个。
mkdir ~/.node_modules
cat ~/.profile
PATH="$HOME/.node_modules/bin:$PATH"
export npm_config_prefix=~/.node_modules
重新登录或更新源代码以更新更改。
你也可以为npm install指定——prefix参数。但是,不建议这样做,因为每次安装全局包时都需要添加它。
$ npm -g install packageName --prefix ~/.node_modules
所以你不需要chown文件夹权限
注意所有更改/usr/local下所有目录所有者的响应
基本上,不要破坏Linux系统!!
对于本地的东西使用sudo也是一个非常糟糕的建议。
www.competa.com的原始链接被破坏了,所以这是原始的方法:
npm config set prefix ~/.npm
# open your .bashrc (Linux) or .bash_profile (Mac) file for editing:
nano ~/.bashrc # for Linux
# or...
nano ~/.bash_profile # for Mac if you haven't created a .bashrc file
# add these lines:
export PATH="$PATH:$HOME/npm/bin"
export NODE_PATH="$NODE_PATH:$HOME/npm/lib/node_modules"
# save the file and then enter this command or logout and login to make the changes take effect:
. ~/.bashrc
# or...
. ~/.bash_profile
选项B:使用NVM之类的版本管理器