為什麼前端工程越來越愛使用 Monorepo 架構

Hannah Lin
Hannah Lin
Published in
9 min readNov 1, 2021

--

Using single git repository to manage multiple apps and libraris

toptal.com/front-end/guide-to-monorepos

Monorepository (簡稱 Monorepo) 概念雖然有一段歷史了,但這個名詞卻是近幾年才變得如此熱門。自己公司也是這半年才導入這個架構,再嚐到許多甜頭後想寫一篇來介紹它,希望多一點人認識此架構。這篇並不會有程式碼,而是從現有架構痛點開始 (Single Repo Monolith、Multi-repo)、為什麼要用 Monorepo 等,若想要實際導入可以參考 nx.dev

現有架構遇到了什麼問題 ?

20 年前的前端相當單純,但在這 6 ~7 年卻產生巨變,現在應該沒幾個人只用純 html/css/js 做出網站了,大部分都是以前端框架出發搭配一大堆的 dependencies (SCSS preprocessors、task managers、npm、typescript…) 。當團隊發展到一定規模又會分出好幾個不同產品,每一個產品使用的 dependencies 都不大相同使得維護變得困難,到底要怎麼做到避免重覆程式碼以及分好責任歸屬 呢?直接用實際例子會清楚許多

若 shop.com 公司今天有數個專案,每一個專案都有不同負責的團隊

購物網站 shop.com (React)
結帳 shop.com/cart
購物網站手機版 m.shop.com (不是 RWD,是獨立網站)
後台 admin.shop.com (Vue)
分析使用者網站 analytics.shop.com (Angular)

Note. 雖然不同專案你可以選擇用不同前端框架,但若都用同一種會看到 monorepo 的更大好處。

這張圖我修了三個小時 = =,請幫我停留 10 秒鐘 XD

shop.com 跟 shop.com/cart 雖然是在一個 domain 底下,但負責的卻是完全不同的團隊

--

--