错误:尝试使用npm安装ESLint时,EACCES:权限被拒绝

我试图通过去安装npm安装ESLint :

npm install -g eslint 

但是,我得到以下错误:

 Deans-Air:~ deangibson$ npm install -g eslint npm ERR! tar.unpack untar error /Users/deangibson/.npm/eslint/2.4.0/package.tgz npm ERR! Darwin 15.3.0 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "eslint" npm ERR! node v4.2.3 npm ERR! npm v2.14.7 npm ERR! path /usr/local/lib/node_modules/eslint npm ERR! code EACCES npm ERR! errno -13 npm ERR! syscall mkdir npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/eslint' npm ERR! at Error (native) npm ERR! { [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/eslint'] npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/usr/local/lib/node_modules/eslint', npm ERR! fstream_type: 'Directory', npm ERR! fstream_path: '/usr/local/lib/node_modules/eslint', npm ERR! fstream_class: 'DirWriter', npm ERR! fstream_stack: npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25', npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53', npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! Please include the following file with any support request: npm ERR! /Users/deangibson/npm-debug.log 

说实话,我每次尝试用npm安装一些东西都会得到这个。 有时使用“sudo”的作品,有时候不会……我该如何解决这个问题呢?

这个问题在npm文档中有详细logging:修复npm权限 。

你有3个解决scheme:

选项1 :将权限更改为npm的默认目录

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

选项2 :将npm的默认目录更改为您主文件夹中的隐藏目录

 mkdir ~/.npm-global npm config set prefix '~/.npm-global' export PATH=~/.npm-global/bin:$PATH source ~/.profile 

选项3 :使用一个软件包pipe理器来为您处理这个问题

 brew install node 

试试这个命令sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules}

这将改变npm和一些其他工具(lib / node_modules,bin和share)使用的子文件夹的所有权。