モノレポ(Monorepo)
複数のプロジェクトやパッケージを1つのGitリポジトリで管理する手法。コードの共有・一貫したCI/CD・依存関係の統一が容易になる。Turborepo・Nx・Yarnワークスペースで実装される。
モノレポ(Monorepo)とは?
モノレポ(Monorepo)は、複数のプロジェクト・アプリ・パッケージを1つのGitリポジトリで管理するアーキテクチャです。Google・Meta・Microsoftなど大規模組織が採用しています。
マルチリポ(Polyrepo)との比較
| 項目 | マルチリポ(Polyrepo) | モノレポ |
|---|---|---|
| リポジトリ数 | プロジェクトごとに分割 | 1つに集約 |
| コード共有 | npmパッケージとして公開 | 直接インポート |
| CI/CD | プロジェクトごとに設定 | 一元管理 |
| 変更影響範囲 | 見えにくい | 一目で把握 |
| リポジトリサイズ | 小さい | 大きくなる |
主なモノレポツール
| ツール | 特徴 |
|---|---|
| Turborepo | Vercel製・高速・設定が簡単 |
| Nx | 多機能・プラグインが豊富 |
| Yarn Workspaces | シンプルな依存関係共有のみ |
| pnpm Workspaces | 効率的なディスク使用 |
典型的なモノレポ構成
my-monorepo/
├── apps/
│ ├── web/ # メインWebアプリ
│ └── mobile/ # モバイルアプリ
├── packages/
│ ├── ui/ # 共通UIコンポーネント
│ ├── utils/ # 共通ユーティリティ
│ └── config/ # 共通設定(ESLint・TypeScript等)
└── package.json
まとめ
モノレポはフロントエンドとバックエンドで共通の型定義を使いたい場合や、複数アプリで同じUIコンポーネントを共有したい場合に特に有効です。
関連する用語 (プログラミング)
全33件を見るRust (ラスト)
「処理の速さ」と「メモリの安全性(バグの出にくさ)」を両立させた、世界で最もプログラマーに愛されている次世代言語。
IT用語: DRY原則とは|「繰り返しを避けよ」というプログラミングの鉄則
Don't Repeat Yourself(DRY)原則の意味と、WET(重複だらけ)なコードが引き起こす問題と対処法を解説。
GraphQL
FacebookがRESTの課題を解決するために開発したAPIクエリ言語。クライアントが必要なデータの形を宣言的に指定して取得でき、オーバーフェッチ・アンダーフェッチを解消する。
IT用語: ソフトウェアテストの種類|単体・結合・E2Eテストの違い
ユニットテスト・結合テスト・E2Eテストの役割とテストピラミッドの考え方を解説。
Go / Golang (ゴー言語)
Google社が開発した、処理速度が超絶爆速で、大量のアクセスに強い現代的なプログラミング言語。
IT用語: SOLID原則とは|オブジェクト指向設計の5つの基本原則
保守性の高いソフトウェア設計のためのSOLID原則(単一責任・開放閉鎖・リスコフ置換・インターフェース分離・依存性逆転)を解説。