monorepo
複数のRepositoryを、1つのRepositoryとみなして管理する
メリット
(各パッケージに対して)単一のビルド/テスト/リリースのプロセスを適用できる
packageを跨いだ変更を連動させることが容易
コードの共有ができる
Issue の受付場所を 1 つに絞ることができる
開発環境のセットアップ簡単になる
全てのパッケージを同時にテストできるため、パッケージをまたいで発生するバグの発見が容易になる
デメリット
リポジトリのサイズが肥大化する
GitHub のスターが集中しやすくなる
Issue が集中するのでかえって管理の手間が発生する
何でもかんでもmonorepoにすればいいわけじゃないmrsekut.icon
monorepo
Aを修正したからと言って、同時に(Aに依存する)Bを修正する必要はない
なので、別に同時にdeployしないといけなくなるわけではない
monorepにせず、複数repoにしたらどういう手間が増えるか
AとBの2つのnpm packageを自作しており、これが連動する場合に以下のような流れになる
Aの中で、Bを使いたい
この要求を満たすためにBを修正しないといけない
Bを修正
Bをnpmにpublish
Aの中で、Bをupdate
これでやっとBの新しい機能をAの中で使える
package間で重複している依存ライブラリを個別にinstallするのではなく、親の1箇所にのみinstallして共有すること
ライブラリ例
packageのmonorepo向き?
applicationのmonorepo向き?
VSCodeなら
pros/cons
参考
monorepoに関するよくある誤解
上の記事の「誤解」をデメリットとして扱っている
実際どうなんだろう
github