Expo SDK 47升级至48时npx expo-doctor执行失败求助
解决Expo SDK 47升级到48时
npx expo-doctor执行失败的方案 1. 修复package.json中的错误配置
你的resolutions字段里@expo/cli被设为无效值xxx,这会导致依赖解析异常。修改或移除该配置,确保resolutions中的版本与Expo SDK 48兼容:
"resolutions": { "@expo/config-plugins": "~6.0.0", "@expo/prebuild-config": "~6.0.0", "expo-modules-autolinking": "~1.1.0" }
2. 移除废弃/不兼容的依赖
unimodules-app-loader:Expo SDK 48已完全移除unimodules体系,卸载该包:npm uninstall unimodules-app-loader@expo/samples@36.0.0:该版本过于陈旧,与SDK48不兼容,卸载它:npm uninstall @expo/samplesexpo-permissions:SDK48已废弃该包,各权限请求需使用对应模块的内置方法(如expo-contacts.requestPermissionsAsync),卸载它:npm uninstall expo-permissions
3. 彻底清理依赖并重新安装
- 删除本地依赖文件:
rm -rf node_modules package-lock.json - 清理npm缓存:
npm cache clean --force - 重新安装依赖:
npm install
4. 使用正确的Doctor命令
Expo SDK 48已使用@expo/cli替代旧的expo-cli,执行Doctor检查时需使用本地cli:
npx @expo/cli doctor
5. 移除全局冲突包
全局安装的旧expo-cli会与项目依赖冲突,卸载全局版本:
npm uninstall -g expo-cli
6. 验证环境一致性
确保你的Node.js和npm版本完全适配:
- 确认当前终端使用的是Node v16.18.1(可通过
node -v检查),若之前切换过Node版本,需确保环境变量已更新 - 若问题仍存在,尝试切换到Node v18.x LTS版本(SDK48官方推荐),重复步骤3的清理安装流程
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

