执行 npm install 出现
Your cache folder contains root-owned files, due to a bug in previous versions of npm which has since been addressed. …
原因:
通常是以下几种造成的
- npm 版本历史中的 bug:过去的一些 npm 版本存在缓存管理上的问题,当使用 sudo 或以 root 用户权限安装包时,可能会导致缓存文件的所有权设置为 root。
- 系统环境差异:不同的操作系统或开发环境可能对用户权限的处理方式有所不同。这可能导致某些情况下需要额外的关注和调整。
- 多用户共享环境:如果你在多用户环境中工作(例如服务器或开发团队中的共享机器),可能会出现缓存文件所有权不一致的情况,因为每个用户的用户ID和组ID都不同。
- 权限设置不当:在使用 npm 时,如果权限设置不当,可能会影响到缓存目录的文件所有权。比如,在需要时没有正确地以当前用户身份更改缓存目录的所有权。
解决方案:
临时解决
根据报错提示,可以执行 sudo chown -R 501:20 "/Users/c***/.npm"
命令暂时解决权限问题,它将缓存目录及其内容的所有权更改为你的用户账户。但这并不是最佳的长期解决方案,因为每次新安装包或更新缓存时,你可能都需要再次运行这个命令。
永久解决
rm -rf ~/.npm/
sudo chown -R 501:20 "/Users/c***/.npm"
npm cache clean --force
参考资料地址:
https://blog.youkuaiyun.com/qq_40279232/article/details/139681728