主题
Monorepo
Monorepo 是一种仓库组织方式:把多个应用、库、配置包放在同一个 Git 仓库中维护。
它关注的是“代码放在哪里、如何协作、如何复用和发布”,不是某个具体工具。pnpm Workspace、Turborepo、Nx、Rush 都只是实现 Monorepo 工作流时可能使用的工具。
适用场景
- 多个应用共享组件、工具函数、配置或类型。
- 前端、后端、文档、脚手架等项目需要统一工程规范。
- 希望一次提交同时修改调用方和被调用方,减少跨仓库联动成本。
- 希望统一依赖安装、版本约束、构建、测试和发布流程。
不适用场景
- 项目之间几乎没有共享代码和协作关系。
- 团队没有维护统一工程规范的能力。
- 仓库规模很大,但缺少任务编排、缓存、权限和 CI 拆分能力。
- 不同项目需要完全独立的生命周期、权限模型和发布节奏。
常见组合
bash
pnpm Workspace + Turborepopnpm Workspace:管理包、依赖、本地包链接和 workspace 范围命令。Turborepo:编排任务、处理任务依赖、并行执行和缓存。
