解決策
とりあえず全てのコンポーネントをnext式の「ダイナミックインポート」する(❷が正しい)
❶BAD
import Meeting from "@/features/meeting/Meeting";
❷OK
import dynamic from "next/dynamic";
const Meeting = dynamic(() => import("@/features/meeting/Meeting"));
next式のダイナミックインポートとは
サーバーでコンポーネントを実行させないようにする、という意味かなと思います(ドキュメントしっかり読んでないので微妙ですが)
自分はサーバーで動作しない記述をコンポーネント内でかなり書いていたようで、デプロイ時(ビルド時)にエラーが出ていました。
ハッカソン中はみなさん時間ないと思うので、next.js利用時に「ReferenceError: window is not defined」エラーが出たらとりあえずダイナミックインポートすると解決するかもです。
もしハッカソン中に遭遇したら片っ端からインポート文をGPTに投げて「ダイナミックインポートして」とお願いしましょう。
このエラーの意味
windowオブジェクトへの接触はサーバーではできない、というものだと思います。
(DOMはサーバーにないので当然)
ただ自分はwindowオブジェクト触ってないんだよな〜という感じで焦ったのですが、サーバーで動作しないものがあると同様にこのエラーが出るみたいです。
(Next.js難しい😭)
本来、Next.jsのssrを最大限活かすため、全てダイナミックインポートするのはご法度なのでハッカソンオンリーの対処法でした