モノレポ(ものれぽ)
最終更新:2026/4/25
モノレポは、複数のプロジェクトのソースコードを一つのリポジトリで管理する開発手法である。
別名・同義語 単一リポジトリ統合リポジトリ
ポイント
大規模なコードベースを扱う際に、依存関係の管理やコード共有を容易にする目的で採用されることが多い。
モノレポとは
モノレポ(Monorepo)は、複数のソフトウェアプロジェクトやコンポーネントのソースコードを、単一のリポジトリにまとめて管理するバージョン管理システム戦略です。従来のポリレポ(Polyrepo)アプローチとは対照的に、モノレポはコードの共有、依存関係の管理、および大規模なリファクタリングを簡素化することを目的としています。
モノレポの利点
- コードの共有と再利用: 複数のプロジェクト間でコードを簡単に共有し、再利用できます。
- 依存関係の管理: プロジェクト間の依存関係を明確にし、一貫性を保ちやすくなります。
- 大規模なリファクタリング: 複数のプロジェクトにまたがる変更をアトミックに行うことができます。
- 可視性の向上: 全てのコードが単一の場所に存在するため、コードベース全体の可視性が向上します。
- ビルドとテストの効率化: 変更の影響範囲を特定しやすくなり、ビルドとテストの効率を向上させることができます。
モノレポの課題
- リポジトリの規模: リポジトリが非常に大きくなる可能性があります。
- アクセス制御: 適切なアクセス制御を設定する必要があります。
- ビルド時間: 全てのプロジェクトをビルドするのに時間がかかる場合があります。
- ツールの選定: モノレポを効果的に管理するための適切なツールが必要です。
モノレポの導入事例
Google、Facebook、Microsoftなどの大手IT企業がモノレポを導入しています。これらの企業では、大規模なコードベースを効率的に管理するために、モノレポが重要な役割を果たしています。
モノレポをサポートするツール
- Bazel: Googleが開発したビルドツール。
- Buck: Facebookが開発したビルドツール。
- Lerna: JavaScriptプロジェクト向けのモノレポ管理ツール。
- Nx: Angular、React、Node.jsプロジェクト向けのモノレポ管理ツール。