optimizePackageImports

بشكل افتراضي، يستخدم Next.js gzip لضغط المحتوى المعروض والملفات الثابتة عند استخدام next start أو خادم مخصص. هذه تحسين للتطبيقات التي لا تحتوي على ضغط مُهيأ. إذا كان الضغط مُهيأ بالفعل في تطبيقك عبر خادم مخصص، فلن يقوم Next.js بإضافة الضغط.

من الجيد معرفة:

  • عند استضافة تطبيقك على Vercel، يستخدم الضغط brotli أولًا، ثم gzip.
  • يمكنك التحقق مما إذا كان الضغط مفعلًا وأي خوارزمية مستخدمة من خلال النظر إلى رؤوس Accept-Encoding (خيارات مقبولة من المتصفح) و Content-Encoding (المستخدمة حاليًا) في الاستجابة.

تعطيل الضغط

لتعطيل الضغط، عيّن خيار compress في الإعدادات إلى false:

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

لا نوصي بتعطيل الضغط إلا إذا كان لديك ضغط مُهيأ على خادمك، حيث يقلل الضغط من استخدام النطاق الترددي ويحسن أداء تطبيقك.

تغيير خوارزمية الضغط

لتغيير خوارزمية الضغط الخاصة بك، ستحتاج إلى تهيئة خادمك المخصص وتعيين خيار compress إلى false في ملف next.config.js.

على سبيل المثال، إذا كنت تستخدم nginx وتريد التبديل إلى brotli، عيّن خيار compress إلى false للسماح لـ nginx بالتعامل مع الضغط.

من الجيد معرفة:

  • بالنسبة لتطبيقات Next.js على Vercel، يتم التعامل مع الضغط بواسطة شبكة Vercel's Edge وليس Next.js. راجع توثيق Vercel لمزيد من المعلومات.