モノレポ設計スキル
複数のパッケージ/アプリを単一リポジトリで管理するためのベストプラクティス。
有効化するタイミング
- •新しいモノレポの設計
- •パッケージ構造の決定
- •依存関係の管理
- •ビルドパイプラインの最適化
- •CI/CDの設定
推奨ツール
| ツール | 用途 |
|---|---|
| Turborepo | タスクランナー、キャッシング |
| pnpm | パッケージマネージャー |
| Nx | 大規模モノレポ、依存関係グラフ |
| Changesets | バージョン管理、リリース |
基本構造
code
monorepo/ ├── apps/ │ ├── web/ # Next.jsアプリ │ ├── api/ # バックエンドAPI │ └── mobile/ # React Native ├── packages/ │ ├── ui/ # 共有UIコンポーネント │ ├── config/ # 共有設定(eslint, tsconfig) │ ├── utils/ # 共有ユーティリティ │ └── types/ # 共有型定義 ├── turbo.json ├── pnpm-workspace.yaml └── package.json
クイックセットアップ
bash
# Turborepo + pnpm pnpm dlx create-turbo@latest # 既存プロジェクトに追加 pnpm add -Dw turbo
重要なルール
- •内部パッケージは
workspace:*- バージョン指定しない - •設定は共有パッケージに - eslint, tsconfig等
- •循環依存を避ける - 一方向の依存のみ
- •パッケージは単一責任 - 小さく保つ
- •キャッシュを活用 - Turborepoのリモートキャッシュ
詳細リファレンス
- •
references/turborepo-config.md- Turborepo設定ガイド - •
references/package-structure.md- パッケージ設計パターン - •
references/ci-optimization.md- CI/CD最適化