作者: HannahLin 来源:medium
本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
Monorepository (简称 Monorepo) 概念虽然有一段历史了,但这个名词却是近几年才变得如此热门。自己公司也是这半年才导入这个架构,再尝到许多甜头后想写一篇来介绍它,希望多一点人认识此架构。这篇并不会有源代码,而是从现有架构痛点开始 (Single Repo Monolith
、Multi-repo
)、为什麽要用 Monorepo 等等。
现有架构遇到了什麽问题 ?
20 年前的前端相当单纯,但在这 6 ~7 年却产生巨变,现在应该没几个人只用纯 html/css/js
做出网站了,大部分都是以前端框架出发搭配一大堆的 dependencies (SCSS preprocessors、task managers、npm、typescript…) 。当团队发展到一定规模又会分出好几个不同产品,每一个产品使用的 dependencies
都不大相同使得维护变得困难,到底要怎麽做到避免重覆源码以及分好责任归属呢?通过实际例子来介绍一下。
若 shop.com 公司今天有数个专案,每一个专案都有不同负责的团队.
代码语言:javascript复制购物网站 shop.com (React)
结帐 shop.com/cart
购物网站手机版 m.shop.com (不是 RWD,是独立网站)
后台 admin.shop.com (Vue)
分析使用者网站 analytics.shop.com (Angular)
Note. 虽然不同专案你可以选择用不同前端框架,但若都用同一种会看到 monorepo 的更大好处。
shop.com 跟 shop.ocm/cart 虽然是在一个 domain 底下,但负责的却是完全不同的团队
在这种复杂的架构下,我们比较熟悉的方法为 Monolith 跟 Multi repo [延伸阅读: 初探 Micro Frontends 程式架构]