モノレポ(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件を見るTypeScript (TS)
JavaScriptの弱点(エラーの起きやすさ)を克服するためにMicrosoftが開発した、「型(ルール)」を持つ進化版言語。
Jest(ジェスト)
MetaがReact向けに開発したJavaScript/TypeScriptのテストフレームワーク。ゼロ設定で動作・スナップショットテスト・モック機能を標準搭載し、フロントエンドテストのデファクトスタンダード。
Ruby (ルビー)
「プログラミングを楽しむ」ことを目的に日本のまつもとゆきひろ氏が開発した、美しく書きやすい言語。
IT用語: 型安全性(Type Safety)とは|TypeScriptが防ぐバグの種類
コンパイル時に型の不一致を検出する「型安全性」の概念と、JavaScriptからTypeScriptへの移行がなぜ有効なのかを解説。
GraphQL
FacebookがRESTの課題を解決するために開発したAPIクエリ言語。クライアントが必要なデータの形を宣言的に指定して取得でき、オーバーフェッチ・アンダーフェッチを解消する。
IT用語: 再帰処理(Recursion)とは|関数が自分自身を呼び出す仕組み
再帰処理の概念・ベースケースの重要性・階乗計算やツリー探索での活用例を解説。