← AI 百科

依赖版本冲突

报错库 ·
一句话:项目中多个包要求的版本不一致,导致安装、构建或运行时出现冲突。

它是什么

依赖版本冲突常见于前端、Node.js、Python和移动端项目。比如一个包需要React 18,另一个包只支持React 17;或者TypeScript、Vite、ESLint、Tailwind等工具链版本不匹配。

适合干什么

  • 安装开源项目遇到peer dependency错误的人
  • 升级框架版本后构建失败的开发者
  • 用AI改项目后依赖变乱的团队
  • 需要维护老项目的人

不适合干什么

  • 硬件、网络或权限导致的安装失败
  • 没有依赖清单的项目
  • 完全不愿意回滚版本的人
  • 生产项目里随便强制忽略冲突的人

普通人怎么用

  • 阅读报错里哪个包要求哪个版本
  • 检查package.json里的相关依赖
  • 优先按主框架版本选择兼容包
  • 不要一上来强制安装
  • 修复后重新运行测试和构建

进阶用户怎么用

  • 用npm ls或pnpm why追踪依赖来源
  • 建立升级分支单独处理大版本升级
  • 锁定关键工具链版本
  • 把依赖升级记录写进CHANGELOG

常见误区

  • 看到冲突就直接--force
  • 同时升级太多包,无法定位问题
  • 只改package.json不更新锁文件
  • 忽略peerDependencies提示

和相似工具的区别

  • 依赖冲突 vs 模块找不到:依赖冲突是版本要求不兼容,模块找不到通常是包没装、路径错误或导出变化。
  • 大版本升级 vs 补丁升级:大版本升级可能有破坏性变化,补丁升级通常用于修复小问题和安全漏洞。

入门步骤

  • 定位冲突包
  • 查看版本要求
  • 确定主框架版本
  • 选择兼容版本
  • 更新锁文件
  • 重新安装
  • 运行测试

推荐工具(第三方)

npm、pnpm、Yarn、npm ls、pnpm why、Codex