Skip to content

什么是monorepo

monorepo是一种代码管理策略,它指的是在同一代码仓库中存放多个项目(如组件、服务、工具、文档等),而不是为每一个项目分别创建独立的代码仓库。

特点

  1. 单一代码仓库:所有相关的代码都存放在一个 Git 仓库中,而不是多个仓库。
  2. 代码共享和复用:多个项目可以共享相同的依赖和工具,提高代码复用率。
  3. 原子化提交:可以一次性对多个相关项目进行提交,保持代码一致性。
  4. 统一依赖管理:常见的包管理工具(如 pnpm workspacesYarn workspacesLerna 等)可以在 monorepo 内高效管理依赖关系,避免版本冲突。
  5. 更好的 CI/CD 效率:可以基于 Git 变更,只测试和构建受影响的部分,提高构建速度。

常见工具

  • pnpm workspace
  • yarn workspace
  • Lerna(常与Yarn或pnpm结合使用)
  • Turborepo(适用于JS/TS项目,专注于任务执行优化)

适用场景

  • 组件库开发(如 Vite + Vue3 + TypeScript + Monorepo)

  • 前端+后端同仓库管理

  • 微前端架构

  • 大型团队协作