Monorepo.tools

什么是monorepo

一个monorepo是一个包含多个有明确关系项目的仓库

代码共存 (code colocation) 并不等于 monorepo。即便多个项目被放在同一个仓库里,如果它们之间没有明确的关系或依赖,我们不能称其为 monorepo。仅仅把代码放在一起并不等于良好的代码管理。

如果一个仓库中包含了一个庞大的应用程序,但没有对各个部分进行清晰的划分和封装,这样的仓库只是一个**“大仓库”**,可以戏称为“巨型仓库 (garganturepo)”。但这并不是 monorepo。

单体式的代码库,或称“单体架构 (monolithic)”,通常是人们在想到 monorepo 时的第一反应,但这种架构是有问题的。真正的 monorepo 正好与之相反,应该是有良好的模块化、封装和明确的依赖关系,而不是所有代码混杂在一起。

https://monorepo.tools/images/spectrum-real-world.svg