npm 在安装的时候提示 没有权限操作的解决办法 Error: EACCES: permission denied

npm 在安装的时候提示 没有权限操作的解决办法 Error: EACCES: permission denied

在安装插件的时候出现这样的错误,权限不够,是因为之前用 root 用户进行了局部安装npm包的操作,留下所属权为 root 的文件,导致普通用户无法访问 root的文件内容。

报错日志如下:

在这里插入图片描述

npm ERR! path /Users/Kyle/.npm/_cacache/index-v5/d8/1f/98ab242d0cbad080828ef3e3f4b864c25e506a719121c293fec810b14b3c
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open '/Users/Kyle/.npm/_cacache/index-v5/d8/1f/98ab242d0cbad080828ef3e3f4b864c25e506a719121c293fec810b14b3c'
npm ERR!  { [Error: EACCES: permission denied, open '/Users/Kyle/.npm/_cacache/index-v5/d8/1f/98ab242d0cbad080828ef3e3f4b864c25e506a719121c293fec810b14b3c']
npm ERR!   cause:
npm ERR!    { Error: EACCES: permission denied, open '/Users/Kyle/.npm/_cacache/index-v5/d8/1f/98ab242d0cbad080828ef3e3f4b864c25e506a719121c293fec810b14b3c'
npm ERR!      errno: -13,
npm ERR!      code: 'EACCES',
npm ERR!      syscall: 'open',
npm ERR!      path:
npm ERR!       '/Users/Kyle/.npm/_cacache/index-v5/d8/1f/98ab242d0cbad080828ef3e3f4b864c25e506a719121c293fec810b14b3c' },
npm ERR!   isOperational: true,
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, open \'/Users/Kyle/.npm/_cacache/index-v5/d8/1f/98ab242d0cbad080828ef3e3f4b864c25e506a719121c293fec810b14b3c\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'open',
npm ERR!   path:
npm ERR!    '/Users/Kyle/.npm/_cacache/index-v5/d8/1f/98ab242d0cbad080828ef3e3f4b864c25e506a719121c293fec810b14b3c',
npm ERR!   parent: 'findup-sync' }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/Kyle/.npm/_logs/2019-03-26T07_00_54_812Z-debug.log

错误原因:

找到报错的文件,会看到它的所有者是 root
之前用 root 进行了局部的安装操作,导致这个文件的所有者是 root ,还包括 .npm 文件夹下部分文件夹的所有权,也是 root,普通用户当然就无权访问了。就会报权限错误。

在这里插入图片描述

解决办法

就是把用户目录下的 .npm 文件夹所有权都改成当前用户即可。

或者删除项目所有文件,重新导入项目,使用普通用户安装项目依赖。

比如:当前用户名为 Kyle

sudo chown -R Kyle ~/.npm 

执行后输入 root 密码,文件所属已改为当前用户了,再执行操作就不会出现了。

在这里插入图片描述
在这里插入图片描述

注意事项

初学者在用 terminal 操作 npm 的时候,经常会混用 root 和 普通用户。
由于分不清全局安装和局部安装的区别,才会出现乱用 root 的问题。

一般来说,全局安装就用 root 安装,它的 node_modules 目录是在系统层面的,比如一些需要在每个目录下都可以使用的工具:

  • nrm npm 包源地址管理
  • n macOS 升级 nodejs 用的

在某个项目中安装东西,用普通用户就可以,它的 node_modules 目录在项目目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月ooOO

许个愿,我帮你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值