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

使用npm安装Expo SDK时遭遇权限拒绝错误

解决Expo SDK全局安装时的EACCES权限错误

我之前在macOS上装全局npm包时也踩过一模一样的权限坑,给你几个实用的解决办法:

方案一:修复npm全局目录的权限(最推荐)

sudo安装会把全局包目录的所有权设为root,导致后续依赖的脚本没法正常写入文件,我们先把权限改回当前用户:

  • 先检查目录权限(可选):
    ls -la /usr/local/lib/node_modules
    
  • 执行下面的命令修改目录所有权:
    sudo chown -R $(whoami) /usr/local/lib/node_modules
    sudo chown -R $(whoami) /usr/local/bin
    sudo chown -R $(whoami) /usr/local/share
    
  • 之后不用sudo,直接运行安装命令:
    npm install exp --global
    

方案二:用nvm管理Node.js(彻底规避权限问题)

如果经常做Node开发,强烈推荐用nvm来管理Node版本,它会把Node和所有npm包都放在用户专属目录下,完全不用碰系统权限:

  • 安装nvm后(可通过官方脚本完成安装,安装后重启终端),安装你需要的Node版本:
    nvm install 8.9.1
    
  • 然后直接执行全局安装命令即可:
    npm install exp --global
    

方案三:临时绕过权限检查(应急用,不推荐)

如果只是想快速解决问题,可以添加--unsafe-perm参数让npm以root身份运行postinstall脚本:

sudo npm install exp --global --unsafe-perm

⚠️ 注意:这个参数会降低安全性,只建议在临时应急时使用,不推荐长期用。

问题原因说明

macOS的/usr/local目录默认归root所有,用sudo安装全局包后,部分依赖(比如@expo/ngrok)的postinstall脚本会以普通用户身份执行,无法访问root权限的文件,从而触发EACCES权限错误。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:38:13