升级React至v18后部署失败:依赖冲突问题求助
问题原因分析
1. TypeScript版本不兼容
react-scripts@5.0.1的可选对等依赖明确要求TypeScript版本范围是^3.2.1 || ^4,但你的项目直接安装了TypeScript@5.1.6,版本超出了支持范围,npm无法解析这个冲突,直接抛出ERESOLVE错误。
2. ESLint插件版本冲突
eslint-config-react-app@7.0.1依赖的eslint-plugin-jest@25.7.0,要求@typescript-eslint/eslint-plugin的版本为^4.0.0 || ^5.0.0,但你项目中安装的是@typescript-eslint/eslint-plugin@6.2.1,版本不匹配,触发对等依赖警告,进一步加剧了依赖解析失败。
解决方案
步骤1:降级TypeScript到react-scripts支持的版本
修改package.json中typescript的版本为^4.9.5(react-scripts支持的最高4.x版本):
"devDependencies": { // 其他依赖保持不变 "typescript": "^4.9.5" }
步骤2:调整ESLint相关依赖版本
将@typescript-eslint/eslint-plugin和@typescript-eslint/parser降级到5.x系列,匹配eslint-plugin-jest的版本要求:
"devDependencies": { // 其他依赖保持不变 "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0" }
步骤3:清理依赖缓存并重新安装
执行以下命令确保依赖完全更新:
rm -rf node_modules package-lock.json npm install
可选方案:升级构建工具适配新版依赖
如果想保留TypeScript 5.x,可以尝试升级react-scripts到最新的5.x补丁版本(确认是否已支持TypeScript 5),或者考虑迁移到Vite等更现代的构建工具,但这需要额外调整项目配置。
内容的提问来源于stack exchange,提问作者Ala Ha
相关产品推荐
相关产品推荐

