React Native项目升级Node至≥18时遇ERESOLVE依赖冲突错误
解决React Native项目Node版本升级至≥18的依赖冲突问题
核心问题
better-docs@2.7.2的peer依赖要求react@^17.0.2,但当前项目使用react@18.2.0,Node 18+版本的npm默认严格校验peer依赖规则,触发ERESOLVE解析错误。
可行解决方案
方案1:永久启用legacy-peer-deps(推荐长期使用)
由于better-docs暂未适配React 18,可配置npm默认采用旧版peer依赖解析逻辑,避免每次手动加参数:
- 在项目根目录的
.npmrc文件中添加:
之后执行legacy-peer-deps=truenpm install会自动忽略该peer依赖冲突。
方案2:升级better-docs到兼容React 18的版本
先确认better-docs是否有适配React 18的更新版本:
- 执行命令查看所有可用版本:
npm view better-docs versions - 若存在兼容版本,修改
package.json中better-docs的版本号,例如:
再执行"devDependencies": { "better-docs": "^3.0.0" // 假设该版本支持React 18 }npm install重新安装依赖。
方案3:用overrides强制适配
如果better-docs无更新版本,可在package.json中添加overrides规则,强制让它使用项目当前的React版本:
"overrides": { "better-docs": { "react": "$react" } }
该配置会让npm安装better-docs时,直接复用项目已安装的react@18.2.0来满足其peer依赖要求。
验证步骤
完成配置后,执行以下操作确保项目正常:
- 删除
node_modules文件夹和package-lock.json文件 - 执行
npm install - 启动项目验证功能:
npm start(或React Native对应启动命令)
内容的提问来源于stack exchange,提问作者Empty Hands
相关产品推荐
相关产品推荐

