无需sudo修复npm抛出EACCES权限错误的方法
解决Mac上npm全局更新的EACCES权限错误
问题原因
你遇到的报错是因为/usr/local/bin目录下的npm文件属于root用户(之前用sudo安装Node导致),当前用户没有修改该文件的权限,所以更新时无法重命名文件。之前执行的sudo chown -R $(whoami) ~/.npm只修改了用户目录下的npm缓存权限,不影响全局的/usr/local/bin目录。
解决方案
方法1:修复全局Node相关目录的权限(推荐)
- 修改
/usr/local/bin目录的所有权为当前用户:
sudo chown -R $(whoami) /usr/local/bin
- 同步修改其他Node全局安装相关目录的权限,避免后续操作再出问题:
sudo chown -R $(whoami) /usr/local/lib /usr/local/share /usr/local/include
- 执行npm更新命令:
npm install -g npm@latest
方法2:临时用sudo执行更新(不推荐长期使用)
如果不想修改全局目录权限,可以临时用sudo执行更新:
sudo npm install -g npm@latest
注意:长期使用sudo安装全局包可能引发更多权限问题,优先选择方法1。
验证修复
更新完成后,执行以下命令确认npm版本:
npm -v
内容的提问来源于stack exchange,提问作者Isaac Chew
相关产品推荐
相关产品推荐

