monoRepo vs Multiple Repo
🔁 Monorepo(單一儲存庫)
所有前端應用(或前後端、套件、元件庫等)都放在同一個 Git 儲存庫中。
✅ 優點
統一開發流程與依賴管理:使用工具如
Turborepo
、Nx
、Lerna
可以集中管理套件、執行 CI/CD。跨專案協作更簡單:可以輕鬆引用共享元件、utils,不需要發布到 npm 或設定私有 registry。
更容易執行整體測試與 lint:可以一次對整個 monorepo 執行 lint、build、test。
版本一致性更好:所有應用與元件的版本可以同時更新,降低相依性錯誤。
❌ 缺點
儲存庫規模大,clone 較慢。
權限與責任劃分困難:每個人都能看到所有 code,對大型組織可能會造成風險或混亂。
CI/CD 更複雜:需要配置增量 build、cache 機制等(不過工具如 Turborepo 已能解決)。
📦 Multiple Repo(多儲存庫)
每個專案、模組、子應用都在自己的儲存庫中。
✅ 優點
清楚的邊界與責任歸屬:每個 repo 對應一個團隊或應用,權限控制簡單。
儲存庫較輕便:clone、CI/CD 速度快。
變更影響小:更新一個應用不會影響其他應用。
❌ 缺點
共享代碼困難:需要建立共享套件 repo,並使用 npm 或私有 registry 管理版本。
協作成本高:跨 repo 修改需要同時開 PR,處理多個 CI/CD。
版本不一致風險高:更新一個元件後,各應用需要手動升級依賴。
Last updated