升级React至16.3.0后应用崩溃:找不到react-dev-utils/ignoredFiles模块求助
我碰到过不少开发者升级React后遇到这个错误,本质上是react-dev-utils这个依赖包缺失,或者它的版本和你当前的react-scripts、React版本不兼容。你已经试过重装node_modules和react-scripts但没解决,试试下面这几个针对性的方案:
1. 单独安装react-dev-utils
直接在项目根目录执行这条命令,把这个包添加到开发依赖中:
npm install --save-dev react-dev-utils
安装完成后重启开发服务器,大概率能解决找不到模块的问题。
2. 升级react-scripts到兼容版本
从你给出的package.json依赖来看,很多包都是比较旧的版本(比如babel-core还是6.x),而React 16.3.0需要匹配对应的react-scripts版本。尝试升级react-scripts:
npm install --save-dev react-scripts@latest
⚠️ 注意:如果你的项目执行过npm run eject(暴露了配置文件),升级react-scripts可能会导致配置冲突,这时候可以找和React 16.3.0同期兼容的版本,比如react-scripts@2.x系列(React 16.3.0发布于2018年,react-scripts 2.x是当时的稳定版本)。
3. 清除缓存后重装干净的依赖
有时候npm缓存会导致依赖安装异常,试试彻底清理后重新安装:
npm cache clean --force rm -rf node_modules package-lock.json npm install
这个步骤能确保你安装的是无缓存干扰的全新依赖包。
4. 检查自定义webpack配置(如果项目eject过)
如果你的项目是eject过的,那webpack配置文件(比如webpackDevServer.config.js)里可能直接引用了react-dev-utils/ignoredFiles,除了安装这个包,还要确认配置中的引用路径是否正确:
const ignoredFiles = require('react-dev-utils/ignoredFiles');
如果路径没问题,安装完react-dev-utils后错误就应该消失了。
要是以上方法都没效果,可以试试换用yarn来安装依赖——有时候npm的依赖树解析会出小问题,yarn的依赖管理可能更稳定。
内容的提问来源于stack exchange,提问作者Mickley

