为React Native安装Expo时出现ENOTEMPTY报错、ZSH权限拒绝如何解决
Expo CLI 全局安装常见问题解决方案
针对ENOTEMPTY目录非空报错的处理
这类报错本质是旧版expo-cli的残留目录和npm的临时重命名机制冲突,按以下步骤清理即可:
- 删除旧版本残留的全局安装目录、以及npm安装过程中生成的临时缓存目录:
sudo rm -rf /usr/local/lib/node_modules/expo-cli /usr/local/lib/node_modules/.expo-cli-* - 强制清理npm本地缓存,避免残留文件干扰安装流程:
npm cache clean --force
针对ZSH权限拒绝提示的处理
这类问题大多是全局npm路径的权限归属错配,混用sudo和普通用户安装操作会加剧权限问题:
- 先查询当前npm配置的全局安装前缀路径:
npm config get prefix - 修正全局安装路径下相关目录的归属为当前用户,消除后续操作的提权需求:
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,lib} - 完成权限修正后,直接执行全局安装命令即可,无需额外添加sudo参数:
npm i -g expo-cli
注意:完成权限修正后,请勿长期依赖sudo参数执行全局npm安装命令,否则会再次触发文件归属错配,重复出现权限拒绝问题
针对执行expo提示命令不存在的处理
这类问题一般是全局安装目录未加入ZSH的环境变量PATH:
- 将npm全局bin目录路径追加到ZSH的配置文件中:
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.zshrc - 重载ZSH配置,让环境变量立即生效:
source ~/.zshrc - 最后执行版本校验,确认安装生效:
expo --version
内容的提问来源于stack exchange,提问作者Matt Volonnino
相关产品推荐
相关产品推荐

