Mac端初始化React Native iOS项目报ERESOLVE依赖冲突报错求助
React Native init 触发ERESOLVE依赖冲突调试方案
报错核心信息
Mac环境执行npx react-native init A2初始化iOS端RN项目时抛出依赖解析错误:
- 流程提示需安装
react-native@0.69.0,确认后npm报ERESOLVE冲突 - 本地残留
react-native@0.68.2依赖@react-native-community/cli@^7.0.3,与新版本要求的react@18.0.0peer依赖不兼容 - 冲突报告路径:
/Users/student/.npm/eresolve-report.txt - 完整运行日志路径:
/Users/student/.npm/_logs/2022-06-25T16_09_36_906Z-debug-0.log
调试方案(按优先级排序)
1. 清理缓存与残留依赖(无副作用,优先尝试)
该类冲突绝大多数是npx/npm本地缓存了旧版本RN初始化包、全局残留旧版本RN依赖导致,按顺序执行命令清理:
# 清理npx缓存,避免拉取本地缓存的旧初始化脚本 npx clear-npx-cache # 强制清理npm全量缓存 npm cache clean --force # 卸载全局可能存在的旧版RN CLI npm uninstall -g react-native react-native-cli @react-native-community/cli # 删除当前目录下残留的半成品项目文件夹、node_modules rm -rf A2 node_modules
清理完成后重新执行初始化命令即可:
npx react-native init A2
2. 指定兼容版本初始化
react-native@0.69.0是首个适配React 18的大版本,若本地Node/npm版本较低无法适配新依赖规则,可以指定经过验证的稳定低版本初始化,无依赖冲突问题:
npx react-native init A2 --version 0.68.2
3. 临时绕过依赖校验(应急使用,存在兼容风险)
若以上方案执行后仍报错,可以追加参数跳过peer依赖校验完成初始化,对应npm给出的官方临时方案:
npx react-native init A2 -- --legacy-peer-deps
注意:该参数会强制npm忽略peer依赖版本匹配要求,初始化完成后如果运行时报依赖相关错误,需要手动对齐
package.json中react与react-native的版本对应关系。
辅助排查手段
如果上述方案均无效,可以直接打开npm生成的冲突报告与日志,定位具体冲突的残留包路径手动删除:
- 打开冲突报告:执行
open /Users/student/.npm/eresolve-report.txt - 打开完整调试日志:执行
open /Users/student/.npm/_logs/2022-06-25T16_09_36_906Z-debug-0.log
内容的提问来源于stack exchange,提问作者universe123
相关产品推荐
相关产品推荐

