运行React应用时出现ESLint React插件冲突编译失败问题求助
报错信息:
Failed to compile.
[eslint] Plugin "react" was conflicted between "package.json » eslint-config-react-app » C:\Users\lenovo\Desktop\achievers\reactProjects\My-app\node_modules\eslint-config-react-app\base.js" and "BaseConfig » C:\Users\lenovo\Desktop\achievers\reactProjects\my-app\node_modules\eslint-config-react-app\base.js".
ERROR in [eslint] Plugin "react" was conflicted between "package.json » eslint-config-react-app » C:\Users\lenovo\Desktop\achievers\reactProjects\My-app\node_modules\eslint-config-react-app\base.js" and "BaseConfig » C:\Users\lenovo\Desktop\achievers\reactProjects\my-app\node_modules\eslint-config-react-app\base.js".
webpack compiled with 1 error
问题原因
从报错路径可看出,项目目录存在大小写差异(My-app和my-app)。Windows系统不区分文件名大小写,但Node模块解析时会识别这种路径差异,导致ESLint加载了两个不同路径下的同一份配置,引发插件冲突。
解决方案
统一项目目录名称
将项目文件夹名称修正为统一大小写(比如把My-app改为my-app,或反之),确保路径完全一致,之后重启开发服务器。清理缓存并重装依赖
- 停止当前运行的开发服务器
- 删除项目根目录下的
node_modules文件夹、package-lock.json(或yarn.lock)文件 - 重新安装依赖:
若使用yarn则执行:npm installyarn install - 重启开发服务器:
npm start
临时禁用ESLint(仅调试用)
若需临时绕过错误继续开发,可在项目根目录的.env文件中添加:DISABLE_ESLINT_PLUGIN=true注意:该方法仅作临时调试,解决根源问题后需移除该配置。
内容的提问来源于stack exchange,提问作者Wish nu

