
本文详解如何绕过 npm 全局安装权限问题,推荐使用 npx 方式安装并运行 expo cli,既安全又无需 sudo 权限,适合新手快速启动 react native 项目。
本文详解如何绕过 npm 全局安装权限问题,推荐使用 npx 方式安装并运行 expo cli,既安全又无需 sudo 权限,适合新手快速启动 react native 项目。
在 macOS 或 Linux 系统中执行 npm install -g expo-cli 时出现 EACCES: permission denied, mkdir '/usr/local/lib/node_modules/expo-cli' 错误,本质是 npm 尝试向系统级目录写入文件,而当前用户缺乏管理员权限。这不是 Expo 的问题,而是 npm 全局安装机制与系统权限策略冲突的典型表现。强行使用 sudo npm install -g expo-cli 虽可临时解决,但会引发后续依赖冲突、权限混乱甚至破坏 Node.js 环境,强烈不推荐。
✅ 正确做法:完全放弃全局安装,改用 npx(Node.js 自带的包执行工具)——它会自动下载、缓存并运行指定包,全程无需修改系统目录权限:
# ✅ 创建新 Expo 项目(推荐方式,无需预装任何 CLI) npx create-expo-app@latest MyApp --template # ✅ 进入项目后运行开发服务器 cd MyApp npx expo start # ✅ 在已有项目中执行其他命令(如打开调试器、构建等) npx expo run:android npx expo export
? 关键优势:
- 零权限风险:所有临时文件存储在用户缓存目录(如 ~/.npm/_npx/),不触碰 /usr/local/;
- 版本自动匹配:npx 总是拉取与项目 package.json 或最新稳定版兼容的 CLI 版本,避免全局 CLI 与项目不兼容;
- 免维护:无需手动卸载旧版 expo-cli,也无需担心 npm outdated -g 或 npm update -g 带来的副作用。
⚠️ 注意事项:
- 若曾误执行 sudo npm install -g expo-cli,建议清理残留:
sudo rm -rf /usr/local/lib/node_modules/expo-cli sudo rm -f /usr/local/bin/expo /usr/local/bin/expo-cli
- 不要卸载 VS Code 或重装 Node.js 来解决此问题——这与编辑器或运行时环境无关;
- 所有官方 Expo 文档(Installation、Quick Start)均已默认采用 npx 流程,务必以文档为准。
总结:npx 是现代 JavaScript 开发的标准实践。对于 Expo、Create React App、Vite 等工具链,优先使用 npx <package> 而非 npm install -g,既能规避权限陷阱,又能确保环境纯净与项目可复现性。

















