モノレポ
複数アプリ(または複数パッケージ)を1つのリポジトリにまとめ、まとめて管理する開発スタイル。
何がうれしいか
依存関係の一元管理:ライブラリ・アプリ間で同じバージョンを使いやすい(React/TypeScript/ESLint など)変更の同期が速い:共通ライブラリの変更を、同じPRでアプリ側まで一緒に直せる横断的な品質担保:lint / test / build / 型チェックをリポジトリ全体で揃えられる開発体験の統一:共通の開発コマンド、共通のCI、共通のテンプレートよくある構成例
apps/:実際に動くアプリ(例:web、admin、api)packages/:共有パッケージ(例:ui、utils、config、eslint-config)repo/
apps/
web/
admin/
packages/
ui/
utils/
config/
運用上の注意点(落とし穴)
ビルドが重くなりがち:影響範囲が広いので、キャッシュや差分ビルドが重要依存の境界が曖昧になりやすい:ルール(import禁止、依存方向、public API)を決める権限・公開範囲:社外公開するコードが混ざる場合は分離やアクセス制御が必要ツール選定が鍵:ワークスペース管理、タスク実行、キャッシュの仕組みで体験が変わる関連キーワード
ワークスペース(npm/yarn/pnpm)タスクランナー(例:Turborepo / Nx)共有UI・共通設定(ESLint/Prettier/tsconfig)依存グラフ / 影響範囲(affected)