المصغر CSS

يتحمّل ملف CSS مصغر بسرعة أكبر بشكل ملحوظ من نسخته المنسَّقة، ويتضاعف الفرق عبر كل تحميل للصفحة. يقوم هذا المصغر بإزالة المسافات البيضاء والتعليقات والفواصل المنقوطة الأخيرة، دون تغيير التتالي أو تأثير أي قاعدة. يكون الإخراج دائمًا CSS صالحًا وتقوم المتصفحات بتحليله بشكل مماثل للأصل.

كيفية تصغير CSS

  1. 1

    الصق ملف CSS

    أي CSS: كتل نمطية مكتوبة بخط اليد ومجمعة بواسطة Sass ومضمنة.

  2. 2

    تصغير

    اضغط "Minify CSS" لإزالة التعليقات والمسافات البيضاء والفواصل المنقوطة الأخيرة في تمريرة واحدة.

  3. 3

    تحقق من التوفير

    يُعرض توفير البايت بجانب الإخراج المضغوط.

  4. 4

    انسخ النتيجة

    انسخ CSS المصغر في حزمة الإنتاج الخاصة بك أو احفظه باسم `.min.css`.

ما يفعله المصغر

التحولات (لا تغير السلوك أبدًا):

  • إزالة التعليقات (جميعها، بما في ذلك كتل /*! الخاصة بالترخيص).
  • إزالة المسافات البيضاء غير الضرورية (بين المحددات والإعلانات والأقواس).
  • إزالة الفواصل المنقوطة قبل إغلاق الأقواس.
  • طي القواعد المتعددة الأسطر في سطر واحد.

هذا كل ما يفعله، ولهذا يتصرف الإخراج تمامًا مثل الأصل: كل محدد وخاصية وقيمة يبقى كما كتبته.

الادخار النموذجي

المصدر الحجم الأصلي الحجم المصغر التوفير
ملف CSS مكتوب يدويًا ومنسَّق بشكل جميل 20 كيلو بايت 12 كيلو بايت 40%
ملف مُترجَم من Sass في وضع التطوير 45 كيلو بايت 25 كيلو بايت 44%
تم تصغيره بالفعل + gzip 10 كيلو بايت 10 كيلو بايت 0%

علاوة على التصغير، يضيف ضغط gzip على الخادم توفيرًا آخر بنسبة 60-80% لأن CSS زائدة عن الحاجة إلى حد كبير. المزايا تتجمع؛ افعل الأمرين معًا دائمًا.

ما لا يفعله التصغير

  • إزالة CSS غير المستخدمة. هذه منطقة تهز الأشجار/PurgeCSS، الأمر الذي يتطلب تحليل HTML أو مكوناتك.
  • تقصير الألوان السداسية أو طي الوحدات الصفرية أو دمج الإعلانات. تلك التحولات القوية من عمل cssnano أو esbuild أو Lightning CSS، وليست من عمل هذه الأداة.
  • دمج المحددات المكررة في واحد. محفوف بالمخاطر لأن ترتيب المصدر يؤثر على التتالي؛ يحاول بعض المصغرين أن يتخطاها معظمهم.
  • إعادة تسمية الفئات. هذه هي وحدات CSS-in-JS أو CSS، وليس التصغير.
  • CSS الحرجة المضمنة. هذه خطوة منفصلة لوقت البناء.

الحفاظ على تعليقات الترخيص

تحتفظ معظم أدوات التصغير بالتعليقات التي تبدأ بـ /*!، المستخدمة لرؤوس الترخيص:

/*! Bootstrap v5.3 · MIT License · https://github.com/twbs/bootstrap */

هذه الأداة تزيل جميع التعليقات. إذا كان CSS الخاص بك يحمل رؤوس ترخيص، فأعد إضافتها بعد التصغير أو استخدم أداة بناء مع خيار الاحتفاظ بالتراخيص مثل cssnano أو esbuild.

خرائط المصدر

لتصحيح أخطاء الإنتاج، تولّد أدوات البناء خريطة مصدر بجانب المخرجات المصغرة:

styles.min.css
styles.min.css.map

يمكن لـ DevTools قراءة الخريطة وإظهار أرقام الأسطر الأصلية المنسَّقة عند فحص أحد العناصر. هذه الأداة لا تولّد خرائط مصدر.

تصغير CSS في مسار البناء

  • Vite، Webpack، Parcel: التعامل مع هذا تلقائيًا في عمليات الإنتاج.
  • PostCSS مع cssnano: أداة التصغير القياسية المستقلة.
  • esbuild: يتضمن أيضًا تصغير CSS.
  • إعدادات cssnano المسبقة: default للتحويلات الآمنة، وadvanced للتحويلات العدوانية (مع بعض المفاضلات).

هذه الأداة مخصصة للتصغير لمرة واحدة، والإصلاحات السريعة، ومعرفة ما تفعله أدوات التصغير فعليًا. بالنسبة لسير عمل الإنتاج، استخدم أداة إنشاء حتى يظل مصدرك قابلاً للقراءة ويتم تصغير المخرجات فقط.

عندما يؤدي التصغير إلى تعطيل CSS الخاص بك

نادر ولكنه ممكن:

  • المحددات الحساسة للمسافة البيضاء: .foo .bar مقابل .foo.bar، المساحة مهمة.
  • قيم الخصائص المخصصة بمسافات: --shadow: 0 2px 4px rgba(0,0,0,0.1)، لا يجب تجريد الفواصل الموجودة داخل rgba().
  • حظر التعليقات غير المغلقة: يأكل /* missing close كل شيء بعده. من الممكن أن تتصرف أدوات التصغير بشكل خاطئ عند إدخالها بشكل غير صحيح.

الإصلاح: قم دائمًا بتشغيل مخرجاتك المصغرة من خلال تمريرة الفحص/الاختبار قبل الشحن.

الأسئلة الشائعة

لا. إن ملف CSS الذي تم تصغيره بشكل صحيح يختلف بالبايت ولكنه متطابق لغويًا. كل محدد وخاصية وقيمة ينتج عنها نفس النتيجة المرئية. إذا رأيت تغييرًا في العرض، فهذا يعني أن أداة التصغير تحتوي على خطأ أو أن مدخلاتك تحتوي على بنية حساسة للمسافة البيضاء.

نعم، عندما تضغط “Minify CSS”. يتم إرسال CSS الذي تلصقه إلى خادمنا لتصغيره وإعادة النتيجة إلى الصفحة. لا يُحفظ في قاعدة بيانات ولا يُضاف إلى رابط الصفحة.

بعد. قم بتصغير ملف CSS النهائي المترجم الذي تتلقاه المتصفحات بالفعل. إن مخرجات Sass مضغوطة بشكل معقول بالفعل ولكنها تحتوي على مسافات بيضاء وتعليقات تعمل على تصغير المقاطع.

متواضع ولكنه حقيقي، عادة ما يكون بنسبة 5-15% فوق gzip. كما أن إزالة المسافات البيضاء والتعليقات تجعل أنماط gzip أكثر كثافة قليلاً.

أدوات ذات صلة

الأداة متاحة بلغات أخرى