mac Os Apple M2 Pro在vscode 编辑器的cmd中比如npm i 总是提示权限不够,总要sudo npm i :
报错如下:
npm warn peer webpack@"^2.0.0 || ^3.0.0 || ^4.0.0" from the root project
npm error code EACCES
npm error syscall open
npm error path /Users/userName/.npm/_cacache/tmp/8b24cea9
npm error errno EACCES
npm error
npm error Your cache folder contains root-owned files, due to a bug in
npm error previous versions of npm which has since been addressed.
npm error
npm error To permanently fix this problem, please run:
npm error sudo chown -R 501:20 "/Users/userName/.npm"
这个问题是因为在使用 npm 时,某些文件夹(如 .npm 缓存目录)被误设置为 root 权限,导致你在没有 sudo
权限的情况下无法正常安装依赖。
解决方法如下:
1. 修复 .npm 文件夹的权限: 按照提示,你可以通过 chown
命令将 .npm 文件夹的所有者修改为当前用户。打开终端,执行以下命令:
sudo chown -R $(whoami) ~/.npm
这个命令会把 .npm 文件夹及其内容的所有者修改为你当前的用户名。
2. 清理缓存(可选): 如果你怀疑缓存已经被破坏,也可以清理 npm 缓存。执行以下命令来清理缓存:
npm cache clean --force
3. 重新安装依赖: 现在,你可以尝试再次运行 npm install
,不需要使用 sudo
,看是否能够成功安装依赖。
避免以后需要 sudo
: 如果你之前因为使用了 sudo npm
而不小心导致文件权限问题,最好以后尽量避免使用 sudo npm 安装依赖,除非特别需要管理员权限。npm 推荐的做法是使用用户权限来管理依赖和包缓存。