yang-xianzhu / astro-blog

🚀-基于Astro搭建的个人博客
https://yang-xianzhu.github.io/
5 stars 0 forks source link

面试官: 什么是Monorepo,以及它的优势? #10

Open yang-xianzhu opened 1 year ago

yang-xianzhu commented 1 year ago

Monorepo其实就是将多个项目(package软件包)放到同一个仓库(Repo)中进行管理。这种代码组织形式可以更好地管理多package项目。 monorepo 的宗旨就是用一个 git 仓库来管理多个子项目,所有的子项目都存放在根目录的 packages 目录下,那么一个子项目就代表一个 package。

优点:

  1. 可见性(visibilty): 每个开发者都可以方便地查看多个包的代码,方便修改跨package的bug。比如开发admin的时候发现UI有问题,随手就可以修改。
  2. 更简单的包管理方式(simpler dependency management): 由于共享依赖简单,因此所有模块都托管在同一个存储库中,因此都不需要私有包管理器。
  3. 唯一依赖源(single source of truth): 每个依赖只有一个版本,可以防止版本冲突,没有依赖地狱。
  4. 原子提交: 方便大规模重构,开发者可以一次提交多个包(package)。