加载中...
Monorepo 指把多个项目或组件的源代码集中存放在同一个版本库中的策略。它便于统一依赖管理、原子化跨项目变更与代码复用,但对构建工具与规模化管理提出更高要求。

| 中文名 | 单一代码库 |
| 外文名 | Monorepo |
| 类别 | 代码组织策略 |
| 相对概念 | 多仓库(Polyrepo) |
| 关键需求 | 规模化构建工具 |
单一代码库(Monorepo)是一种源代码组织策略,指将多个项目、服务或库的代码统一存放在同一个版本控制仓库中管理,与之相对的是每个项目各自独立仓库的多仓库(Polyrepo)策略。
随着系统被拆分为大量服务与共享库,代码如何在仓库层面组织成为工程问题。Monorepo 主张用一个仓库容纳全部代码,使团队能在单次提交中原子化地修改多个相互依赖的部分,并共享统一的工具链与规范。谷歌、Meta 等公司以超大规模 Monorepo 而闻名,同时也催生了专门的构建与依赖管理工具。
Monorepo 适合组件间耦合紧密、需要频繁跨项目协作的团队,如前端多应用共享组件库、微服务共享协议定义的场景。前端生态中有多种工作区与任务编排工具支持这种模式,能够只构建和测试受改动影响的部分,从而在大仓库中保持效率。
问:Monorepo 和单体架构是一回事吗?答:不是。Monorepo 是代码仓库的组织方式,单体是运行时的部署形态;一个 Monorepo 完全可以构建出许多独立部署的微服务。
问:它有什么代价?答:仓库体积和构建耗时会随规模增长,普通工具可能力不从心,需要引入专门的构建缓存与依赖分析工具,并做好权限与所有权划分。

| 中文名 | 单一代码库 |
| 外文名 | Monorepo |
| 类别 | 代码组织策略 |
| 相对概念 | 多仓库(Polyrepo) |
| 关键需求 | 规模化构建工具 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧