什么是monorepo
monorepo
是一种代码管理策略,它指的是在同一代码仓库中存放多个项目(如组件、服务、工具、文档等),而不是为每一个项目分别创建独立的代码仓库。
特点
- 单一代码仓库:所有相关的代码都存放在一个 Git 仓库中,而不是多个仓库。
- 代码共享和复用:多个项目可以共享相同的依赖和工具,提高代码复用率。
- 原子化提交:可以一次性对多个相关项目进行提交,保持代码一致性。
- 统一依赖管理:常见的包管理工具(如
pnpm workspaces
、Yarn workspaces
、Lerna
等)可以在 monorepo 内高效管理依赖关系,避免版本冲突。 - 更好的 CI/CD 效率:可以基于 Git 变更,只测试和构建受影响的部分,提高构建速度。
常见工具
- pnpm workspace
- yarn workspace
- Lerna(常与Yarn或pnpm结合使用)
- Turborepo(适用于JS/TS项目,专注于任务执行优化)
适用场景
组件库开发(如 Vite + Vue3 + TypeScript + Monorepo)
前端+后端同仓库管理
微前端架构
大型团队协作