Monorepo和pnpm很早之前听说过,只是一直觉得暂时用不上,就没有去了解。而越来越多的知名开源项目开始使用Monorepo策略,vue3、vite在去年九月十月就迁移使用pnpm。
其它一些开源项目更是很早就宣布使用monorepo,比如npm7:
传统Multirepo策略就是一个项目一个仓库,当我们要开新的项目,很多时候从旧项目copy一些工具函数或者全局逻辑、配置等。
现在公司用的就是Multirepo策略,新建项目使用封装的模板项目,统一有一个公共的SDK。所以自己正在经历这些痛点:
痛点是存在的,优势也很明显,那就是独立存在:
Monorepo策略是多个项目放到一个仓库里面,可以说完美解决了Multirepo的痛点:
随之而来的缺点:
Multirepo和Monorepo是天然对立的两种模式,没有哪一种是完美的,Multirepo相对来说更大众,也更符合现在互联网的团队。
还需要明确一点,Monorepo不仅仅是把项目放到一个仓库下就可以,这需要一套完整的体系支撑。代码管理、开发流程、发布流程、测试等,每一个环节需要考虑的远远多于Multirepo。想要使用Monorepo,更重要的是团队整体的素质。
没有实践过Monorepo,所以并不能感受到Monorepo落地的困难程度,对于普通的团队来说,想要落地Monorepo,肯定是找已经一些比较成熟的开源项目,然后再去定制。