monorepo
複数のリポジトリを一つのリポジトリで管理する
monorepoのhandbookあるのでこれ読むと分かりやすい
pnpm dlx create-turbo@latest
bunx create-turbo@latest
2023/12/2 今beta版でbunも使えるみたい。 appに複数のアプリ入れておけば一つのリポジトリで複数のアプリ管理できるのか?
ならいろんなnextjsのアプリを一つで管理している方が楽そうな気がするな。
メリットは設定の共通化とかパッケージをまとめて管理したりできることかな?
パッケージ化されてるのでそのままライブラリとしても使えるし
色んなパッケージを一気にbuildしたり起動させたりができる
どのくらいたくさんあったら落ちるんかな?
色々試すための環境としてはとてもいいんじゃないかな?
めっちゃ勉強になる。
基本scriptはturboで実行するようになるからturboに関してはグローバルインストールでも良さそう。
ワークスペース分けてると中でインストールしたり、scriptをpnpm runしても動かなかったりするのでturboがそこらへん勝手にやってくれる。
ただデメリットというか大きくなってくるのでわかりづらい
scriptもそのままじゃ動かなかったり
packageのインストールとかもワークスペースを指定したりとちょっと特殊
わいも作ってみた
kuma-uiとかbuildしたものじゃなくてそのままexportしているものを使ってるけど、buildしてしまってそのjsをインポートしたりだと使いづらいのかな? いちいちbuildしないと使えないってのも微妙か
無理に一つのpackageとして独立しなくても、共通で使いたいものを共通で定義してあげるで良さそう。
nextとか他のライブラリとか結構最近monorepo
node_modulesの扱い
どういう扱いなのかちゃんとドキュメント読んだわけではないけど一応わかったことだけ書いとく
ワイの設定でそうなってる可能性もあるので正確なことはわからん。
各ものリポで管理しているプロジェクトにnode_modulesとしてinstallされてない、rootのnode_modulesにインストールされてる
バージョンが同じだから?
pnpmがうまくやってくれてんのかな?
npmで試してないから知らん。
そのせいか、基本パッケージなくてもそのモノリポ内でimportしなければ別に使えないことはない。(別パッケージのpackage.jsonに記載されていてそのパッケージのコンポーネントをimportするとかで動く)
workspace系のパッケージはは各モノリポのnode_modulesにインストールされてるみたい。