npm install -g 报 EACCES 怎么办?先别用 sudo

npm EACCES 权限错误处理示意图

npm 全局安装报 EACCES 时,先把 npm 全局目录改到当前用户目录,再补 PATH,别急着用 sudo

有时装一个全局命令,刚跑 npm install -g,终端就回一串 EACCESpermission denied。不少人第一反应是前面加 sudo,但这样容易把全局包和缓存目录搞成 root 权限,后面更乱。

先用当前用户目录接住 npm 的全局安装。可以按 npm 官方文档给的做法,先执行:

mkdir ~/.local npm config set prefix ~/.local

然后把这个目录加到 PATH。当前 shell 先临时执行一次:

export PATH="$HOME/.local/bin:$PATH"

想长期生效,就把同一行加到你常用 shell 的配置文件里,比如 ~/.zshrc~/.bashrc,保存后重新打开终端,或者执行一次:

source ~/.zshrc

这时再重试原来的全局安装命令,一般就能过去。如果你只是偶尔跑一次命令,不一定非要全局装。npm 文档也提到,可以直接试试 npx your-package-name

另外,npm 官方把 Node 版本管理器列为更推荐的长期方案,因为它会把 Node 和 npm 放在当前用户可写的位置,后面少踩很多权限坑。参考:Resolving EACCES permissions errors when installing packages globally

最后提醒两点:第一,别把 sudo npm install -g 当默认解法;第二,如果你之前已经用过 sudo 装全局包,后面仍报权限问题,还要顺手检查 npm 缓存和旧目录属主是不是已经被改乱了。

Caleb
Caleb管理员

上一篇:Excel 打开 CSV 中文乱码怎么办?用数据导入选 UTF-8
下一篇:已是最新的文章

留言评论

暂无留言
请先 登录 再评论,若不是会员请先 注册
取消
扫码支持