optimizePackageImports

Next.js はデフォルトで、next start またはカスタムサーバーを使用する際に、レンダリングされたコンテンツと静的ファイルの圧縮に gzip を使用します。これは圧縮が設定されていないアプリケーションのための最適化です。アプリケーションでカスタムサーバー経由で圧縮が すでに 設定されている場合、Next.js は圧縮を追加しません。

豆知識:

  • Vercel でアプリケーションをホストする場合、圧縮にはまず brotli が使用され、次に gzip が使用されます。
  • レスポンスの Accept-Encoding(ブラウザが受け入れるオプション)と Content-Encoding(現在使用されている)ヘッダーを確認することで、圧縮が有効かどうかと使用されているアルゴリズムを確認できます。

圧縮の無効化

圧縮 を無効にするには、next.config.jscompress オプションを false に設定します:

next.config.js
module.exports = {
  compress: false,
}

サーバーで圧縮が設定されている場合を除き、圧縮を無効にすることは推奨しません。圧縮は帯域幅の使用を減らし、アプリケーションのパフォーマンスを向上させます。

圧縮アルゴリズムの変更

圧縮アルゴリズムを変更するには、カスタムサーバーを設定し、next.config.js ファイルで compress オプションを false に設定する必要があります。

例えば、nginx を使用していて brotli に切り替えたい場合、compress オプションを false に設定して nginx が圧縮を処理できるようにします。

豆知識:

  • Vercel 上の Next.js アプリケーションの場合、圧縮は Next.js ではなく Vercel のエッジネットワークによって処理されます。詳細については Vercel のドキュメント を参照してください。