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

执行npx react-native upgrade升级RN至0.69.1报ERESOLVE依赖错误如何解决

React Native 0.63.4升级触发ERESOLVE依赖树报错解决方案

报错场景

将React Native项目从0.63.4版本升级至最新版本时,执行npx react-native upgrade命令失败,核心报错为npm依赖树解析错误,完整报错信息:

error Command failed: npm install --save --save-exact react-native@0.69.1 react@18.0.0

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! Found: react-native@0.69.1
npm ERR! node_modules/react-native
npm ERR!   react-native@"0.69.1" from the root project
npm ERR!   peer react-native@"> 0.57" from @fortawesome/react-native-fontawesome@0.2.7
npm ERR!   node_modules/@fortawesome/react-native-fontawesome
npm ERR!     @fortawesome/react-native-fontawesome@"^0.2.7" from the root project
npm ERR!   24 more (@ptomasroos/react-native-multi-slider, ...)

报错根因

这是npm 7及以上版本的严格peer依赖校验机制导致的常见问题:
npm 7之后默认会强制校验所有安装包的peer依赖版本匹配关系,一旦存在版本声明不匹配就会直接中断安装。本次升级跨度较大(从0.63直接升到0.69,同步升级React到18.0.0),项目中已安装的20+三方依赖(包括报错里提到的@fortawesome/react-native-fontawesome、@ptomasroos/react-native-multi-slider等)还没有同步更新peer依赖声明适配新版本RN和React,就会触发这个解析错误。

可行解决方法

  • 临时加参数跳过peer依赖校验完成核心包升级
    执行升级命令时追加--legacy-peer-deps参数,让npm使用旧版宽松解析逻辑,忽略peer依赖不匹配的问题,先把RN和React核心版本升级到位:
    npx react-native upgrade --legacy-peer-deps
    
    核心包升级完成后,再逐个把项目里的三方依赖升级到支持React 18、RN 0.69的版本,最后删除node_modules文件夹和package-lock.json文件,重新执行npm install --legacy-peer-deps安装全部依赖即可。
  • 降低升级跨度,按梯度逐版本升级
    跨6个以上RN次版本直接升级本身就容易触发大量兼容问题,不要直接跳转到最新版,按版本梯度逐次升级,每升级一个RN版本就同步处理对应版本的依赖兼容问题,能大幅降低冲突概率。
  • 临时降级npm到6.x版本再执行升级
    npm 6.x版本没有强制peer依赖校验逻辑,不会因为三方库的peer声明未更新就阻断安装流程:
    npm install -g npm@6
    
    降级完成后再执行npx react-native upgrade命令,等全部升级流程跑完、依赖兼容问题处理完,再把npm切回高版本即可。

注意:升级完成后必须完整跑通项目全流程,部分长期未维护的三方库如果没有适配高版本RN,需要自行替换为维护状态正常的同功能库,或者打补丁做兼容处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:39:19