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

安装react-scripts出现依赖冲突无法执行npm start/run build问题求助

解决方案

立即修复(可快速正常运行npm start、npm run build)

你遇到的报错核心是npm v7+默认开启严格的 peer 依赖校验,项目使用React 17,而dev依赖中的enzyme-adapter-react-16仅兼容React 16,导致所有依赖操作被拦截。操作步骤如下:

  • 删除项目根目录下的node_modules文件夹和package-lock.json文件
  • 执行安装命令:npm install --legacy-peer-deps

--legacy-peer-deps会让npm忽略peer依赖版本冲突,按照package.json声明的版本直接安装。安装完成后即可正常执行npm start和npm run build,这两个业务命令不会用到enzyme相关的测试依赖,完全不影响功能运行。

可选:兼容enzyme单元测试

如果你后续需要使用enzyme做单元测试,可按以下步骤调整:

  1. 手动修改package.json的devDependencies配置,将"enzyme-adapter-react-16": "^1.15.6"替换为"@wojtekmaj/enzyme-adapter-react-17": "^0.8.0"
  2. 修改测试适配文件(一般为src/setupTests.js),将enzyme适配器的导入替换为React17对应的版本即可。

替代方案(不需要加额外安装参数)

如果你不想使用--legacy-peer-deps参数,也可以选择降级React版本适配现有依赖:

  • 将package.json中react和react-dom的版本从^17.0.2修改为^16.14.0
  • 删除node_modules和package-lock.json后直接执行npm install即可
依赖冲突通用排查思路
  • 定位冲突根源:npm报错会明确标注冲突的依赖对应关系,格式一般为「当前项目安装了X版本的A包,但是B包要求A包的版本范围为Y」,先找到A、B两个冲突包
  • 优先适配版本:要么升级/降级其中一个包到互相兼容的版本,要么查找对应版本的替代包
  • 临时绕开校验:如果冲突的是测试、lint等非业务核心依赖,可以用--legacy-peer-deps参数跳过校验,不影响业务功能运行
  • 清理缓存重试:修改配置后仍报错的话,删除node_modules和lock文件重新安装,排除旧缓存干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 18:36:01