♻️

【1 駅で読めるテックブログ】モノレポってなに?

2024/09/29に公開

モノレポとは何か【1 駅で読める記事】

モノレポ(monorepo)の定義

モノレポは「mono(単一の)」と「repo(リポジトリ)」を組み合わせた言葉です。

  • モノ(mono):単一の、モノリシック
  • レポ(repo):リポジトリ

つまり、単一のリポジトリという意味で、フロントエンドやバックエンド、共通コンポーネントなどを 1 つのリポジトリで管理する方法を指します。

反対の概念

モノレポの反対は「ポリレポ(Polyrepo)」と呼ばれます。

導入のきっかけ

Flutter を使用して、ユーザー画面と管理画面が存在するプロジェクトを作成する際、以下の点で手間がかかりました:

  • ワークフローの共通化
  • 共通コンポーネントの作成
  • Issue の作成

Flutter におけるモノレポの利点

Flutter のプロジェクトでは、以下のような状況でモノレポが有効です:

  • Flutter だけでも 3 つのリポジトリ、バックエンドも合わせると 4 つのリポジトリが必要になる場合がある
  • 全てのリポジトリで共通化されているものがある場合、更新作業が非常に工数のかかる作業になる
  • モノレポで管理することにより、複数リポジトリにわたる修正が容易になる

潜在的な問題点

CI/CD

デフォルトブランチは 1 つなので、デプロイ先が異なる場合に複雑になる可能性があります。

使えそうなツール

  1. Melos

    • モノレポ管理ツール
    • 上記の問題を解決できる可能性がある
  2. ゆめみさんのテンプレート

    • Melos が組み込まれた状態で、すぐに開発を開始できる
GitHubで編集を提案
株式会社ドットログ

Discussion