optimizePackageImports
بشكل افتراضي، يستخدم Next.js gzip
لضغط المحتوى المعروض والملفات الثابتة عند استخدام next start
أو خادم مخصص. هذه تحسين للتطبيقات التي لا تحتوي على ضغط مُهيأ. إذا كان الضغط مُهيأ بالفعل في تطبيقك عبر خادم مخصص، فلن يقوم Next.js بإضافة الضغط.
من الجيد معرفة:
- عند استضافة تطبيقك على Vercel، يستخدم الضغط
brotli
أولًا، ثمgzip
.- يمكنك التحقق مما إذا كان الضغط مفعلًا وأي خوارزمية مستخدمة من خلال النظر إلى رؤوس
Accept-Encoding
(خيارات مقبولة من المتصفح) وContent-Encoding
(المستخدمة حاليًا) في الاستجابة.
تعطيل الضغط
لتعطيل الضغط، عيّن خيار compress
في الإعدادات إلى false
:
module.exports = {
compress: false,
}
لا نوصي بتعطيل الضغط إلا إذا كان لديك ضغط مُهيأ على خادمك، حيث يقلل الضغط من استخدام النطاق الترددي ويحسن أداء تطبيقك.
تغيير خوارزمية الضغط
لتغيير خوارزمية الضغط الخاصة بك، ستحتاج إلى تهيئة خادمك المخصص وتعيين خيار compress
إلى false
في ملف next.config.js
.
على سبيل المثال، إذا كنت تستخدم nginx وتريد التبديل إلى brotli
، عيّن خيار compress
إلى false
للسماح لـ nginx بالتعامل مع الضغط.
من الجيد معرفة:
- بالنسبة لتطبيقات Next.js على Vercel، يتم التعامل مع الضغط بواسطة شبكة Vercel's Edge وليس Next.js. راجع توثيق Vercel لمزيد من المعلومات.