终端执行eas build提示需Expo SDK>40 无法完成升级问题求助
Expo SDK版本低于40导致eas build报错解决方案
问题现象
- 终端执行
eas build提交React Native应用时,持续提示需Expo SDK版本高于40才可正常运行 - 多次卸载重装node、npm、eas、expo相关全局环境,问题仍未解决
当前环境信息
- Node版本:
v16.15.1(执行node --version获取) - EAS CLI版本:
eas-cli/0.53.1 darwin-x64 node-v16.15.1 - Expo CLI全局版本:
5.4.9 - npm版本:
8.11.0
已尝试的无效操作
- 执行
npm install -g npm@latest更新npm到最新版 - 执行
npm install --global expo-cli@44,已尝试多个expo-cli全局版本 - 执行
sudo npm i -g expo-cli全局重装expo-cli - 执行
n stable、n latest切换Node版本
问题根因
你之前的所有操作都是在修改全局安装的expo-cli工具版本,但eas build校验的是当前React Native项目本地依赖的Expo SDK版本,和全局expo-cli版本没有直接关系,这也是反复重装全局环境始终无效的核心原因
分步修复操作
- 终端进入你的React Native项目根目录,先确认本地expo依赖版本:
npm list expo
如果返回的版本号低于40.0.0,即可确认是本地依赖版本问题。 - 清理项目旧依赖和缓存:
rm -rf node_modules rm -f package-lock.json yarn.lock npm cache clean --force
- 安装兼容当前Node 16环境的高版本Expo SDK(推荐46.x稳定版):
npm install expo@^46.0.0 --save - 自动修复项目内所有Expo关联依赖的版本匹配问题:
npx expo install --fix
该命令会自动把expo-status-bar、expo-updates等所有Expo生态依赖调整到和当前SDK版本完全兼容的版本,避免版本不兼容报错。 - 检查项目根目录下
app.json配置,确认expo节点下的sdkVersion字段和刚安装的expo版本一致,没有该字段则手动添加:
{ "expo": { "sdkVersion": "46.0.0", // 其余原有配置保持不变即可 } }
- 验证本地SDK版本:
npx expo --version
返回版本号高于40后,重新执行eas build即可正常运行。
额外提示:建议先执行
npm uninstall -g expo-cli卸载全局安装的旧版expo-cli,后续所有项目相关操作统一使用npx expo前缀调用项目本地安装的expo版本,彻底避免全局版本和项目版本冲突导致的异常。
内容的提问来源于stack exchange,提问作者er123
相关产品推荐
相关产品推荐

