De-yu's Note
  • Deyu Notebook
  • Side Project
    • Stock
    • ChatBox
    • SnowCraft
    • ScrollBar
  • 架構問題
    • 解決 RTK Query data 為 undefined 的實務做法
    • 透過 xstate 解決UI 狀態問題
  • 技術觀點
    • 為什麼需要 store
    • Router 作用
    • react 和 next.js 差異
    • monoRepo vs Multiple Repo
  • Performance
    • React 優化
  • JS Coding
    • Curry
    • Debounce
    • Throttle
  • map
  • memo()
  • Promise 實作
  • Promise Function
  • Testing
    • 使用 Jest 、 React Testing Library 、MSW 建立測試環境
  • Miscellaneous
    • Event Loop
    • Browser
    • Code Review
    • Storage
  • AMD 、 CommonJS 、 ES modules
  • JWT
  • Next.js
  • 用過的 module
  • Internet
    • UDP
  • TCP/IP
  • SSL TLS
  • HTTP
  • AI 工作流
    • Page 1
Powered by GitBook
On this page
  1. 技術觀點

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。

  • 版本不一致風險高:更新一個元件後,各應用需要手動升級依賴。

Previousreact 和 next.js 差異NextReact 優化

Last updated 14 days ago