monorepoのメリット
- package.jsonの可読性向上
- 部分的にpublishしたい場合に便利
例
repo/
├─ package.json ← リポジトリ全体
├─ pnpm-workspace.yaml ←まとめやく
├─ apps/
│ ├─ web/
│ │ └─ package.json ← Webアプリ
│ └─ admin/
│ └─ package.json ← 管理画面
└─ packages/
├─ ui/
│ └─ package.json ← 共通UI
└─ utils/
└─ package.json ← 共通ライブラリ
なぜか
- パッケージの依存関係をとどめたいから。
個別にpnpm installは不要
pnpm workspaceがまとめてやってくれる。
なお、node_modulesは個別フォルダにできるが、シンボリックリンクで容量は節約できる。
package.jsonのバージョンをどうするか問題
社内アプリ・Webサービスのmonorepo → versionをあまり意識しない/統一運用
npmパッケージを複数公開するmonorepo → packageごとにversionを分ける
全部を一体としてリリースする大型プロジェクト → version統一


この記事へのコメントはありません。