NetlifyでNext.jsをホストする時は、`Bundle JS`に注意
半日潰れたので覚書。 Bundle JSとは? Netlifyが提供するAsset最適化オプションの1つ。複数のファイルを1つにまとめて、Amazon CloudFrontから配信するように自動でしてくれます。 Next […]
広告ここから
広告ここまで
目次
半日潰れたので覚書。
Bundle JSとは?
Netlifyが提供するAsset最適化オプションの1つ。複数のファイルを1つにまとめて、Amazon CloudFrontから配信するように自動でしてくれます。
Next.jsアプリで使った場合
Next.jsはビルド時にファイルを複数のchunkにわけて生成します。
これが1ファイルに自動でまとめられます。
何が起きたか
自分が遭遇したのは、「React Hookが一部ページで実行されなくなった」という現象です。
# pages/_app.tsx
function MyApp({ Component, pageProps }) {
useIonicComponent()
useIonDarkModeHandler()
useGATrackPageView()
# pages/[slug].tsx
export const SinglePostContent: FC<{
post: WPPost | null
}> = ({post}) => {
useHighlightJS(post)
このあたりが子ページの一部で動作しなくなり、「IonicのWeb Componentが描画されない」「HilightsJSのハイライトが入らない」などの現象に遭遇しました。
Frameworkが生成するファイルは無闇に結合しない
WordPressでもこういう現象あったなぁというのを後から思い出しました。何かしらの目的を持ってフレームワークがファイル分割を行なっている場合がありますので、Assetの最適化はテスト環境を作って試してからやるなど、慎重に行う方が良さそうです。