npm ERESOLVE依赖冲突:ESLint相关包版本不兼容求助
解决npm ERESOLVE依赖冲突问题
问题背景
执行npm install时触发ERESOLVE解析错误,核心冲突点:
eslint-plugin-unused-imports@3.2.0要求@typescript-eslint/eslint-plugin版本为6-7- 项目依赖的
react-scripts@5.0.1通过eslint-config-react-app@7.0.1引入了@typescript-eslint/eslint-plugin@5.62.0
拒绝使用--force或--legacy-peer-deps参数,需要干净的依赖安装方案。
报错详情
npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: eslint-plugin-unused-imports@3.2.0 npm error Found: @typescript-eslint/eslint-plugin@5.62.0 npm error node_modules/@typescript-eslint/eslint-plugin npm error @typescript-eslint/eslint-plugin@"^5.5.0" from eslint-config-react-app@7.0.1 npm error node_modules/eslint-config-react-app npm error eslint-config-react-app@"^7.0.1" from react-scripts@5.0.1 npm error node_modules/react-scripts npm error react-scripts@"^5.0.1" from the root project npm error peerOptional @typescript-eslint/eslint-plugin@"^4.0.0 || ^5.0.0" from eslint-plugin-jest@25.7.0 npm error node_modules/eslint-plugin-jest npm error eslint-plugin-jest@"^25.3.0" from eslint-config-react-app@7.0.1 npm error node_modules/eslint-config-react-app npm error eslint-config-react-app@"^7.0.1" from react-scripts@5.0.1 npm error node_modules/react-scripts npm error react-scripts@"^5.0.1" from the root project npm error npm error Could not resolve dependency: npm error peerOptional @typescript-eslint/eslint-plugin@"6 - 7" from eslint-plugin-unused-imports@3.2.0 npm error node_modules/eslint-plugin-unused-imports npm error dev eslint-plugin-unused-imports@"^3.0.0" from the root project npm error npm error Conflicting peer dependency: @typescript-eslint/eslint-plugin@7.13.1 npm error node_modules/@typescript-eslint/eslint-plugin npm error peerOptional @typescript-eslint/eslint-plugin@"6 - 7" from eslint-plugin-unused-imports@3.2.0 npm error node_modules/eslint-plugin-unused-imports npm error dev eslint-plugin-unused-imports@"^3.0.0" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution.
当前package.json的devDependencies配置
"devDependencies": { "@babel/core": "^7.24.7", "@babel/eslint-parser": "^7.24.7", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/plugin-syntax-flow": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.24.7", "@babel/preset-react": "^7.24.7", "@types/react": "^18.3.3", "eslint": "^8.55.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-alias": "^1.1.2", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-perfectionist": "^2.5.0", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-unused-imports": "^3.0.0", "prettier": "^3.1.0", "typescript": "^5.4.5", "typescript-eslint": "^7.13.1" }, "overrides": { "nth-check": "2.1.1", "react-scripts": { "typescript": "^5" } },
可行解决方案
方案1:降级eslint-plugin-unused-imports到兼容v5的版本
eslint-plugin-unused-imports的v3.1.0及以下版本支持@typescript-eslint/eslint-pluginv5,修改package.json中的版本号:
"eslint-plugin-unused-imports": "^3.1.0"
修改后执行npm install即可完成干净安装。
方案2:使用npm overrides强制统一@typescript-eslint版本
在package.json的overrides字段中添加对@typescript-eslint/eslint-plugin和@typescript-eslint/parser的版本锁定,选择v6.x版本(与现有eslint@8.x兼容性更好):
"overrides": { "nth-check": "2.1.1", "react-scripts": { "typescript": "^5", "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0" }, "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0" }
修改后执行npm install,安装完成后需运行项目验证是否存在功能异常。
方案3:升级react-scripts到支持@typescript-eslint v6/v7的版本
react-scripts@5.x不支持@typescript-eslintv6+,可以尝试升级到react-scripts@next预览版,但注意升级可能引发其他依赖适配问题,建议提前备份项目并充分测试。
内容的提问来源于stack exchange,提问作者Maverick
相关产品推荐
相关产品推荐

