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

升级至Expo 54后,npm运行expo-doctor成功但yarn执行失败求助

Expo 54下Yarn运行expo-doctor失败的原因
  • Yarn 1.x与Expo 54兼容性不匹配
    Expo 54配套的expo-doctor工具,在依赖版本检查逻辑上更适配npm的包解析规则。你使用的Yarn 1.22.22属于旧版本,它的依赖解析机制(比如peer依赖处理、版本范围匹配)和npm存在差异,导致expo-doctor误判为依赖版本不符合要求。目前Expo官方对Yarn 1.x的兼容性支持已弱化,更偏向适配Yarn 2+和npm。

  • yarn run与npx的执行逻辑差异
    用yarn doctor执行脚本时,Yarn会优先加载本地node_modules里的expo-doctor,如果Yarn安装依赖时,某些间接依赖的版本和Expo 54要求有偏差,就会触发检查失败。但直接运行npx expo-doctor或者npm run doctor时,npx会拉取适配Expo 54的最新expo-doctor版本,或者npm的依赖解析更贴合Expo的要求,因此能顺利通过检查。

  • Yarn 1.x的lock文件缓存问题
    Yarn 1.x的yarn.lock会缓存旧版本依赖,即便你升级到Expo 54,这些缓存的依赖可能和新要求冲突。而npm的package-lock.json版本解析更精准,或者你使用npm时自动同步了依赖版本,所以未出现问题。

可行的临时解决方法
  • 升级Yarn到2+版本(Yarn Berry),它的依赖解析逻辑和npm更接近,能更好适配Expo 54。
  • 删除yarn.lock和node_modules,重新执行yarn install后再运行yarn doctor,清除旧缓存可能解决误判问题。
  • 修改package.json的脚本为:"doctor": "yarn exec npx expo-doctor",强制用npx的逻辑执行检查。

内容的提问来源于stack exchange,提问作者David Carboni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 06:33:13