optimizePackageImports
Next.js はデフォルトで、next start
またはカスタムサーバーを使用する際に、レンダリングされたコンテンツと静的ファイルの圧縮に gzip
を使用します。これは圧縮が設定されていないアプリケーションのための最適化です。アプリケーションでカスタムサーバー経由で圧縮が すでに 設定されている場合、Next.js は圧縮を追加しません。
豆知識:
- Vercel でアプリケーションをホストする場合、圧縮にはまず
brotli
が使用され、次にgzip
が使用されます。- レスポンスの
Accept-Encoding
(ブラウザが受け入れるオプション)とContent-Encoding
(現在使用されている)ヘッダーを確認することで、圧縮が有効かどうかと使用されているアルゴリズムを確認できます。
圧縮の無効化
圧縮 を無効にするには、next.config.js
で compress
オプションを false
に設定します:
module.exports = {
compress: false,
}
サーバーで圧縮が設定されている場合を除き、圧縮を無効にすることは推奨しません。圧縮は帯域幅の使用を減らし、アプリケーションのパフォーマンスを向上させます。
圧縮アルゴリズムの変更
圧縮アルゴリズムを変更するには、カスタムサーバーを設定し、next.config.js
ファイルで compress
オプションを false
に設定する必要があります。
例えば、nginx を使用していて brotli
に切り替えたい場合、compress
オプションを false
に設定して nginx が圧縮を処理できるようにします。
豆知識:
- Vercel 上の Next.js アプリケーションの場合、圧縮は Next.js ではなく Vercel のエッジネットワークによって処理されます。詳細については Vercel のドキュメント を参照してください。