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

Expo项目SDK41升级至44后npm install报ERESOLVE依赖树错误

Expo SDK 41升44后依赖报错解决方案

问题复现

已存在的Expo项目按如下流程从SDK41升级到SDK44:

  • 全局升级Expo CLI至5.4.3及以上版本:执行npm i -g expo-cli
  • 进入项目目录执行expo upgrade完成升级
    升级后执行expo start启动项目,抛出错误:

Unable to find expo in this project - have you run yarn / npm install yet?
执行npm install尝试安装依赖时,再次抛出依赖解析错误:
ERESOLVE unable to resolve dependency tree while installing a package
报错参考截图:
ERESOLVE依赖报错截图
运行环境为MacOS。

解决步骤

  1. 清理残留依赖文件
    升级过程中旧的依赖目录、版本锁文件残留是依赖树冲突的主要原因,先在项目根目录执行命令彻底清理:
rm -rf node_modules package-lock.json yarn.lock
  1. 绕过npm严格peer依赖校验
    npm 7.0+版本默认开启严格peer依赖校验规则,Expo SDK44适配周期内部分第三方包未同步更新peer依赖声明,会直接触发ERESOLVE报错,两种方案选其一即可:
  • 临时方案:安装依赖时追加参数跳过校验
    npm install --legacy-peer-deps
    
  • 永久方案:在项目根目录新建.npmrc文件,写入如下配置,后续执行npm命令默认跳过严格peer依赖校验:
    legacy-peer-deps=true
    
    保存配置后直接执行npm install即可完成依赖安装。
  1. 修复Expo依赖版本对齐
    依赖安装完成后执行命令,自动将所有Expo关联依赖调整至匹配SDK44的兼容版本,避免版本错位:
expo install --fix
  1. 启动验证
    执行expo start启动项目,此前的找不到expo包、依赖树解析错误即可解决。

避坑说明

  • 操作前先校验全局Expo CLI版本:执行expo --version确认版本号≥5.4.3,版本不符时执行npm i -g expo-cli@5.4.3安装指定兼容版本,避免CLI与项目SDK版本不兼容导致升级流程异常。
  • 使用Yarn作为包管理器的场景下,清理残留文件后直接执行yarn install即可,Yarn不会对peer依赖冲突做强制阻断,不会触发ERESOLVE报错。
  • 完成上述步骤后仍存在依赖报错的,逐一排查package.json中手动引入的第三方原生依赖,确认其版本兼容Expo SDK44,升级不兼容依赖到对应适配版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:15:46