モノレポ(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件を見るPython (パイソン)
AI(人工知能)やデータ分析の分野で世界的に最も人気のあるプログラミング言語。
IT用語: SOLID原則とは|オブジェクト指向設計の5つの基本原則
保守性の高いソフトウェア設計のためのSOLID原則(単一責任・開放閉鎖・リスコフ置換・インターフェース分離・依存性逆転)を解説。
Prettier(コードフォーマッター)
コードを自動的に整形するオピニオネイテッドなフォーマッター。JavaScript・TypeScript・CSS・HTML・JSON・Markdownに対応し、チームのコードスタイル論争を終わらせる。
WebAssembly(Wasm)
ブラウザ上でネイティブに近い速度で実行できるバイナリ命令形式。C・C++・Rustなどのコードをブラウザで動かすことができ、ゲーム・動画編集・CADなど計算負荷の高いWebアプリに使われる。
IT用語: async/awaitとは|非同期処理をわかりやすく書く構文
Promiseベースの非同期処理をまるで同期処理のように書けるasync/awaitの仕組みとエラーハンドリングを解説。
IT用語: 型安全性(Type Safety)とは|TypeScriptが防ぐバグの種類
コンパイル時に型の不一致を検出する「型安全性」の概念と、JavaScriptからTypeScriptへの移行がなぜ有効なのかを解説。