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の最適化はテスト環境を作って試してからやるなど、慎重に行う方が良さそうです。
ブックマークや限定記事(予定)など
WP Kyotoサポーター募集中
WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。
14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。
広告ここから
広告ここまで