升级eslint版本后React项目执行npm start出现依赖冲突报错如何解决?
问题根因
该报错由Create React App(CRA)的依赖预检机制触发:CRA内置的react-scripts包固定依赖eslint@^6.6.0,你在项目中手动安装了eslint@7.32.0,不同版本的eslint出现在依赖树中导致校验不通过,项目无法启动。
解决方案
方案一:彻底修复依赖冲突(推荐)
按顺序执行以下操作:
- 删除项目根目录下的
package-lock.json(若使用yarn包管理器则删除yarn.lock,注意不要删除package.json文件) - 删除项目根目录下的
node_modules文件夹 - 打开项目根目录的
package.json,从dependencies、devDependencies配置项中删除所有手动添加的eslint相关依赖 - 执行
npm install(yarn用户执行yarn)重新安装全部依赖
如果完成上述操作后仍然报错,可继续执行以下排查步骤:
- 检查项目上级目录是否存在意外安装的eslint,比如/Users/rishipurwar/coding-space/路径下的node_modules文件夹,若存在直接删除,避免npm依赖提升机制加载到外部的高版本eslint
- 在项目根目录执行
npm ls eslint,查看除react-scripts外还有哪些依赖包安装了高版本eslint,针对性调整对应包的版本即可
方案二:临时绕过校验(仅应急使用,不推荐)
在项目根目录创建.env文件,添加一行配置SKIP_PREFLIGHT_CHECK=true,即可永久关闭CRA的依赖预检校验,直接启动项目。但该方案会隐藏依赖冲突问题,后续可能出现其他未知的兼容性故障。
内容的提问来源于stack exchange,提问作者r121
相关产品推荐
相关产品推荐

