运行React Node应用报无法加载babel-eslint解析器错误
报错根因
报错本质是依赖版本不兼容:你项目中手动安装的eslint-config-react-app@5.2.0是旧版本,默认依赖babel-eslint作为代码解析器,但你使用的react-scripts@5.0.0内置的ESLint生态已经废弃babel-eslint,改用@babel/eslint-parser,手动安装的低版本ESLint配置包和react-scripts内置的依赖版本错配,就会触发找不到模块的报错,单独升级ESLint版本无法解决这个核心冲突。
修复步骤
- 先清除本地依赖缓存和锁文件,避免旧版本依赖残留干扰:
使用npm的话执行:
使用yarn的话执行:rm -rf node_modules package-lock.jsonrm -rf node_modules yarn.lock - 打开
package.json,删除devDependencies下手动添加的eslint-config-react-app、eslint-plugin-jsx-a11y这类ESLint相关依赖。react-scripts会自动管理和当前版本完全匹配的ESLint配置、插件、解析器依赖,不需要手动单独安装,手动指定低版本反而会引发依赖冲突。 - 重新安装项目依赖:
如果你用yarn就执行npm installyarn install - 依赖安装完成后重新运行启动命令即可,不需要额外修改ESLint配置。
不推荐使用直接
npm install babel-eslint的临时修复方案,这种方式只是补上了缺失的包,没有解决版本错配的根本问题,后续运行lint或者启动项目时大概率会出现其他ESLint规则兼容报错。
内容的提问来源于stack exchange,提问作者Mayank Geete
相关产品推荐
相关产品推荐

