You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac环境下全局安装Jest遇gyp权限错误及已尝试的解决方法

解决MacBook全局安装Jest时的gyp ERR! EACCES: permission denied, rmdir 'build'错误

这个gyp ERR! EACCES权限报错在Mac上全局装npm包时真的很常见,尤其是涉及到node-gyp编译步骤的时候——毕竟系统目录的权限管得严。既然你试过更新node-gyp和修改目录权限都没搞定,我给你几个更靠谱的解决思路:

方案1:用nvm管理Node.js版本(长期推荐)

nvm会把Node.js安装在你的用户目录下,完全绕开系统级的权限限制,不仅能解决这次的问题,还能帮你轻松切换不同Node版本,后续开发更省心:

  • 先通过Homebrew安装nvm:brew install nvm,安装完成后按照终端提示把nvm的配置加到你的shell文件(比如~/.zshrc或~/.bash_profile)里
  • 重启终端,或者执行source ~/.zshrc(对应你的shell配置文件)让配置生效
  • 安装一个长期支持版的Node.js:nvm install --lts
  • 现在直接全局安装Jest,不用加sudo:npm install -g jest

方案2:自定义npm全局安装目录

把npm的全局包安装目录改成你的用户目录,这样就不用碰系统目录的权限了:

  • 在用户根目录创建一个全局包目录:mkdir ~/.npm-global
  • 告诉npm使用这个新目录:npm config set prefix '~/.npm-global'
  • 把这个目录添加到系统PATH中,编辑你的shell配置文件(比如~/.zshrc),添加一行:export PATH=~/.npm-global/bin:$PATH
  • 刷新配置让它生效:source ~/.zshrc
  • 现在直接安装Jest:npm install -g jest

方案3:临时用--unsafe-perm参数解决

如果暂时不想调整Node环境,试试在安装命令里加上--unsafe-perm参数,它会让npm以root身份运行node-gyp的编译脚本,大概率能解决删除build目录的权限问题:

sudo npm install -g jest --unsafe-perm

优先推荐方案1,毕竟从根源上解决了权限问题,还能带来版本管理的额外好处;方案2适合不想换Node管理工具的情况;方案3则是临时应急的快速解法。

内容的提问来源于stack exchange,提问作者Atul Kumar Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:57:07