使用react-360 init创建项目报依赖错误,npm start启动失败
问题根因
- 首次执行
react-360 init的报错本质是依赖版本校验冲突:老版react-360脚手架生成的模板中,根项目指定安装react@16.3.2,但配套依赖react-native@0.55.4要求的对等依赖版本为react@16.3.1。npm 7及以上版本默认开启严格依赖树校验,遇到这类不匹配会直接中断安装流程。 - 后续
npm start的报错是安装中断的连锁反应:由于依赖没有完整拉取到node_modules目录,自然找不到react-360包对应的packager.js启动脚本。
分步可执行解决方案
- 第一步:删除当前生成的残缺MyProject目录,避免残留的配置文件、空目录干扰后续操作。
- 第二步:重新执行初始化命令时,给npm透传跳过严格peer校验的参数,执行命令:
react-360 init MyProject -- --legacy-peer-deps
这个参数会绕过npm的严格依赖校验逻辑,按照模板内置的版本配置拉取依赖,直接从根源上解决ERESOLVE冲突。 - 第三步:初始化命令执行完成无报错后,进入项目目录手动补全一次依赖安装,执行命令:
npm install --legacy-peer-deps - 第四步:依赖安装完成后,再执行
npm start即可正常启动开发服务。
注意事项:
- 不要手动修改项目package.json里的react版本去适配react-native的对等依赖要求,这套react-360老版本模板的版本组合是经过官方兼容验证的,强行降版本反而会触发更多运行时错误。如果拉包过程中出现网络超时类问题,单独给npm切换可用源即可,不需要调整依赖版本配置。
- 启动时弹出的
fs.promises API is experimental警告属于正常提示,是因为当前运行的Node版本对该API的标记为实验性,不会影响项目正常运行,不需要额外处理。
内容的提问来源于stack exchange,提问作者sam rafiei
相关产品推荐
相关产品推荐

