在npm install:未处理的拒绝错误:EACCES:权限被拒绝

时间:2018-06-01 08:58:49

标签: npm permissions

我设法破坏了我的npm安装,每当我尝试使用npm install安装软件包时,都会收到以下错误消息:

  

未处理的拒绝错误:EACCES:权限被拒绝,打开' /Users/marknorgate/.npm/_cacache/tmp/a449402d'

我尝试重新安装node& npm,我也尝试使用these instructions将我的npm缓存重新定位到其他位置,但没有任何效果。

我怎样才能让它发挥作用?

17 个答案:

答案 0 :(得分:370)

将用户的npm相关文件夹的所有权恢复给当前用户,如下所示:

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

答案 1 :(得分:30)

sudo chown -R $(whoami) ~/.npm

答案 2 :(得分:8)

以上答案对我不起作用。只需尝试使用--unsafe-perm运行命令即可。

例如

npm install -g node@latest --unsafe-perm

这似乎解决了问题。

答案 3 :(得分:4)

如果您第一次运行NPM时使用sudo,则会发生这种情况,例如,尝试执行npm install -g时。

缓存文件夹必须由当前用户拥有,而不是root用户。

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

当以普通用户权限(不是sudo)运行时,这将赋予上述文件夹所有权。

还值得注意的是,您不应该使用SUDO安装全局软件包。如果您确实遇到权限问题,则值得更改全局目录。文档建议:

mkdir ~/.npm-global

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

然后在定义路径的地方(〜/ .profile等)更新

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

然后,您需要确保已设置PATH env变量(重新启动终端或使用source命令)

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

答案 4 :(得分:3)

如果答案中的建议都没有解决,请尝试以下操作:npm cache clear —-force。它对我有用。

我在https://github.com/vuejs/vue-cli/issues/1809找到了它。

答案 5 :(得分:1)

  new TWEEN.Tween(this.model.rotation)
  .to(
    {
      x: THREE.Math.degToRad(pitch),
      y: THREE.Math.degToRad(roll),
      z: THREE.Math.degToRad(heading)
    },
    150
  )
  .easing(TWEEN.Easing.Linear.None)
  .start();

然后npm我正常了

答案 6 :(得分:1)

只需在位置_cache/tmp下手动在.npm下创建文件夹/Users/marknorgate/.npm/_cacache/tmp,然后使用管理员权限运行您的命令

答案 7 :(得分:1)

只需执行sudo npm cache clean --force --unsafe-permnpm i就会正常运行。

答案 8 :(得分:1)

更改所有权

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config 

使用sudo为我安装的软件包工作

答案 9 :(得分:0)

答案 10 :(得分:0)

仅在终端sudo chown -R $(whoami) ~/.npm上运行

这对我有用!

答案 11 :(得分:0)

尝试使用此方法: 在命令行的主目录中,创建用于全局安装的目录:

mkdir ~/.npm-global

配置npm以使用新的目录路径:

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

在您喜欢的文本编辑器中,打开或创建〜/ .profile文件并添加以下行:

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

在命令行上,更新系统变量:

source ~/.profile

现在使用npm安装它应该可以工作。

答案 12 :(得分:0)

根据npm社区

sudo npm cache clean --force --unsafe-perm

然后npm安装正常进行。

来源:npm community-unhandled-rejection-error-eacces-permission-denied

答案 13 :(得分:0)

您可以尝试在expo中执行以下命令:

sudo chown -R $USER:$GROUP ~/.expo

答案 14 :(得分:0)

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

这是为我工作的人

答案 15 :(得分:-2)

这个对我有用:

sudo chown -R $(whoami) ~/.npm

我没有使用-g,因为我是唯一的用户。我使用的是MacBook Air。

答案 16 :(得分:-2)

sudo npm install -g @angular/cli

用这个。它对我有用