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

我尝试用 npm 安装 埃斯林特,方法是:

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”是有用的,有时候不是... ... 我怎样才能一劳永逸地解决这个问题呢?

110721 次浏览

这个问题在 Npm docs: 修复 npm 权限中有详细的文档说明。

你有两个解决方案:

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

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

选项2 : 使用一个包管理器为您处理这个问题

brew install node

使用 --unsafe-perm=true--allow-root标志与 npm安装如下:-

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

对我来说非常有效。

sudo npm install -g --unsafe-perm=true eslint

就足够了。

在安装 packages.json 时,运行以下命令为我解决了这个问题:

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

只安装导致问题的软件包:

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

使用 运动前练功和它是为我工作

例如:

sudo tns create Tekmo --template tns-template-hello-world

如果我已经使用了 sudo,那么没有发现错误喜欢创建 Postinstall.js

错误: EACCES: 权限被拒绝

为 MAC 用户提供项目目录文件夹的访问权限

  1. 右键单击项目目录文件夹
  2. 选择获取信息
  3. 提供访问权限-应用于封闭项

只是在运行时出现了相同的错误

npm install -g @ionic/cli native-run cordova-res

若要修复,请运行以下命令

sudo apt update
sudo apt upgrade -y

我已经阅读了已经存在的解决方案,但认为还有别的东西,UNSAFE 不是一个安全的关键字,哈哈。在使用—— safe-perm = true 运行该命令时,我注意到它下载了似乎是更新二进制文件的内容。 所以我更新了一下,又试了一次。

您可以使用 sudo su作为 root 用户登录。首先在终端上运行命令 sudo su,然后给出登录密码。最后执行预期的命令 npm install -g eslint。对我有用。

伙计们,我已经修好了

sudo npm install

我已经尝试了最好的答案,它也很好。