Closed13
nextjsで複数サイトをどう扱うか?
- リポジトリごとわける
- 順当
- monorepoする
- monorepoきついとき多い(vercelでやるにもいまいち面倒だったり)
- 特定ディレクトリ下を別サイトっぽくする
/admin
的な- 特定ENVを食わせたときに発動させて別ドメイン運用するけどコードベース一緒とかは出来そう
- package.jsonは統一でサブディレクトリ起動
- できるんだろうか?
-
https://www.reddit.com/r/nextjs/comments/nix06o/nextjs_for_multiple_domains_with_different/
- ちょっと文脈違うがi18nの分離を利用している
-
https://isidoro-ferreiro.medium.com/share-your-prisma-client-across-projects-44d1c7aca6fd
- prisma clientに特化して共有化する(package化してる?)話
-
https://nextjs.org/docs/api-reference/next.config.js/basepath
- basepathはむしろ既存サイトのサブディレクトリに配置する話っぽい
-
https://nextjs.org/docs/advanced-features/multi-zones
- https://github.com/vercel/next.js/tree/canary/examples/with-zones/home
- package.jsonは多段化しつつも、サブディレクトリ起動する疑似monorepoっぽいのもあるのかも?
でもこの方法は下位ディレクトリに移動して起動することになりそうで、monorepoとほぼ類型と見たほうが妥当そう
- https://github.com/vercel/next.js/discussions/23640
- https://github.com/vercel/next.js/issues/4315
-
/hoge/pages
みたいなのをソースとして指定するのは現在存在しておらず、この方向は厳しい可能性が高い
next dev app-a
みたいにディレクトリ指定するのは行ける気がする。next.config.jsは指定出来なそうなので、そこはENVで指定してnext.config内で切り替えを行う?
この方法の場合、app-a
など指定したディレクトリより外側についてコンパイル対象にならないのでwebpackの調整が必要。
webpackのnext-swc-loaderのinclude設定にコンパイル対象にしたい対象を入れれば起動するが、はてこれはどうか悩ましい
- 特定ディレクトリ下を別サイトっぽくする /admin的な
- 特定ENVを食わせたときに発動させて別ドメイン運用するけどコードベース一緒とかは出来そう
- 結局これはそれなり安牌になりそう
- next.configのrewrite使えばいける
- next12以上ならmiddleware使ったほうがきれいかも?
-
.next
ディレクトリに複数のアプリが吐き出しをするとdevモードが壊れるので分離する必要がある - indexページは切り分け出来ないので、リダイレクト(getServerSidePropsでも可)
- layoutっぽい部分とかはrouterのURLで切り分けるのとかだと楽っぽそう
このスクラップは2022/07/06にクローズされました