♻️
【1 駅で読めるテックブログ】モノレポってなに?
モノレポとは何か【1 駅で読める記事】
モノレポ(monorepo)の定義
モノレポは「mono(単一の)」と「repo(リポジトリ)」を組み合わせた言葉です。
- モノ(mono):単一の、モノリシック
- レポ(repo):リポジトリ
つまり、単一のリポジトリという意味で、フロントエンドやバックエンド、共通コンポーネントなどを 1 つのリポジトリで管理する方法を指します。
反対の概念
モノレポの反対は「ポリレポ(Polyrepo)」と呼ばれます。
導入のきっかけ
Flutter を使用して、ユーザー画面と管理画面が存在するプロジェクトを作成する際、以下の点で手間がかかりました:
- ワークフローの共通化
- 共通コンポーネントの作成
- Issue の作成
Flutter におけるモノレポの利点
Flutter のプロジェクトでは、以下のような状況でモノレポが有効です:
- Flutter だけでも 3 つのリポジトリ、バックエンドも合わせると 4 つのリポジトリが必要になる場合がある
- 全てのリポジトリで共通化されているものがある場合、更新作業が非常に工数のかかる作業になる
- モノレポで管理することにより、複数リポジトリにわたる修正が容易になる
潜在的な問題点
CI/CD
デフォルトブランチは 1 つなので、デプロイ先が異なる場合に複雑になる可能性があります。
使えそうなツール
-
Melos
- モノレポ管理ツール
- 上記の問題を解決できる可能性がある
-
ゆめみさんのテンプレート
- Melos が組み込まれた状態で、すぐに開発を開始できる
Discussion