更新react-scripts后应用无法启动 babel-jest版本不兼容依赖问题求助
问题根因
react-scripts@4.0.3 固定依赖babel-jest@^26.6.0,你项目中存在其他第三方包的子依赖拉取了babel-jest@27.2.5,且被包管理器提升到了顶层node_modules,触发了Create React App的依赖预检校验。
修复方案
1. 定位引入高版本babel-jest的依赖
在项目根目录执行命令:npm ls babel-jest
返回结果中会列出所有依赖babel-jest的包,可查看除react-scripts外哪个包引入了27.x版本的babel-jest。
2. 强制锁定babel-jest版本
根据你使用的包管理器,在package.json中添加对应配置,强制所有依赖使用兼容react-scripts的babel-jest版本:
若使用npm(v8.3.0及以上版本)
新增overrides字段:
{ "name": "accurator-web", "version": "0.1.0", "private": true, // 此处保留你原有package.json的所有配置 "overrides": { "babel-jest": "^26.6.0" } }
若使用yarn
新增resolutions字段:
{ "name": "accurator-web", "version": "0.1.0", "private": true, // 此处保留你原有package.json的所有配置 "resolutions": { "babel-jest": "^26.6.0" } }
3. 重新安装依赖
- 删除项目根目录下的
node_modules文件夹、package-lock.json(npm)或yarn.lock(yarn)文件 - 执行安装命令:
npm install或yarn - 执行
npm start启动项目验证是否正常
备选绕过方案
如果上述方案仍不生效,可在项目根目录的.env文件中添加配置SKIP_PREFLIGHT_CHECK=true,永久关闭依赖预检,该配置不会影响业务代码正常运行。
内容的提问来源于stack exchange,提问作者WEBKIRA
相关产品推荐
相关产品推荐

