使用npx react-native init创建项目时出现ERESOLVE依赖报错如何解决
React Native 初始化 ERESOLVE peer依赖报错解决方法
问题复现
执行项目初始化命令:npx react-native init myproject
运行过程中输出以下报错信息,最终初始化流程中断:
ERESOLVE overriding peer dependency npm WARN While resolving: react-shallow-renderer@16.14.1 npm WARN Found: react@18.0.0 npm WARN node_modules/react npm WARN peer react@"18.0.0" from react-native@0.69.1 npm WARN node_modules/react-native npm WARN react-native@"*" from the root project npm WARN 1 more (@react-native-community/cli) npm WARN 1 more (use-sync-external-store)
报错根因是 npm 7.0 及以上版本默认开启严格的peer依赖版本校验,React Native 0.69.x 发布时,部分关联的第三方依赖还未同步更新自身的peer依赖声明,触发版本校验冲突,直接打断初始化流程。
可行解决方案
按操作成本从低到高排序:
- 直接指定无依赖冲突的稳定版React Native初始化,避开0.69.x的已知问题,执行命令:
npx react-native init myproject --version 0.68.2
该版本所有关联依赖的版本声明完全匹配,不会触发peer校验报错,初始化完成后如果需要升级版本,再对照官方版本匹配表操作即可。 - 临时关闭npm的严格peer依赖校验,再执行初始化:
先执行配置命令修改npm解析规则:npm config set legacy-peer-deps true
配置生效后正常执行初始化命令即可完成项目创建。后续如果需要恢复npm默认的严格校验逻辑,执行npm config set legacy-peer-deps false即可。 - 如果已经生成了半截项目文件,不用删了重来,进入项目根目录按以下步骤操作:
- 删掉目录下的
node_modules文件夹和package-lock.json文件 - 执行带兼容参数的依赖安装命令:
npm install --legacy-peer-deps - 依赖安装完成后,即可正常执行启动命令运行项目。
- 删掉目录下的
注意:React和React Native的版本存在严格的绑定对应关系,初始化完成后不要随意单独升级React版本,否则会直接导致项目无法启动。
内容的提问来源于stack exchange,提问作者ai Gooner
相关产品推荐
相关产品推荐

