الانتقال إلى المحتوى الرئيسي
PulsarKit

تصغير CSS أو JS أو HTML

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

أفلت ملفاتك هنا

⁦.css, .js, .mjs, .html, .htm, .txt⁩ · حتى 20 م.ب

طريقة تصغير

  1. 1

    إفلات ملفات الشيفرة المصدرية

    أضف حتى 20 ملفًا من أوراق الأنماط أو النصوص البرمجية أو الصفحات، حجم كل منها حتى 20 ميغابايت. يُقرأ كل ملف ويُعالج داخل علامة التبويب هذه في متصفحك.

  2. 2

    تأكيد اللغة

    يُحسم الأمر أولًا من امتداد الملف، ثم من محتواه. وإذا لم يحسمه أي منهما، فاختر CSS أو JavaScript أو HTML بنفسك قبل المتابعة.

  3. 3

    تنزيل الملفات المصغرة

    تظهر كل نتيجة بجانب الملف الأصلي كملف .min، وتصلك الدفعة في أرشيف ZIP واحد.

تقسيم إلى رموز يُبقي السلاسل النصية كما هي

يُقسَّم كل ملف إلى رموز (tokens) حقيقية قبل حذف أي حرف. وهذا ما يمنع علامة تعليق داخل سلسلة نصية من قطع السطر، والشرطتين المائلتين داخل رابط URL من ابتلاع قاعدة كاملة، وعلامة فتح تعليق بالأقواس الزاوية داخل نص برمجي من إنهاء الكتلة قبل أوانها. والحذف الساذج للمسافات يتعطل في هذه الحالات بالذات، ويتعطل بصمت.

فواصل الأسطر ذات المعنى تبقى

في JavaScript يقوم السطر الجديد أحيانًا مقام الفاصلة المنقوطة. فعبارة return يليها فاصل سطر تعيد undefined، بينما return تليها مسافة تعيد القيمة، لذلك فإن استبدال ذلك الفاصل يغير ما تفعله الشيفرة. وفواصل الأسطر التي تعتمد عليها اللغة تبقى في مكانها. وفي HTML يُنسخ محتوى pre وtextarea حرفيًا، وتبقى التعليقات الشرطية: فهي جزء من بنية الصفحة لا مجرد ملاحظات.

ما لا تفعله الأداة عمدًا

لا تُختصر أسماء المتغيرات، ولا تُنشأ خريطة مصدر (source map). فإعادة تسمية المتغيرات المحلية تعني تحليلًا كاملًا للنطاقات فوق محلل كامل للغة، وأي خطأ صغير فيه يكسر شيفرة تعمل دون أي تحذير. لذلك التوفير هنا أصغر مما تعطيك إياه سلسلة أدوات بناء كاملة، وكل ما يأتي منه قابل للعكس.

لا تُرفع شيفرتك أبدًا

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

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

هل تصغير شيفرة لم أكتبها آمن؟

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

لماذا تبقى أسماء المتغيرات كما هي؟

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

هل التصغير هو نفسه تعمية الشيفرة؟

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

هل أحصل على خريطة مصدر (source map)؟

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

هل يمكنني تصغير عدة ملفات دفعة واحدة؟

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

ماذا يحدث إذا كان في الملف خطأ صياغة؟

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

لماذا لم يصغر حجم الملف إلا قليلًا؟

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

هل تُصغَّر الأنماط والنصوص البرمجية المضمنة في HTML أيضًا؟

نعم. كتل style وscript في الصفحة تُصغَّر بالآلية نفسها المستخدمة مع الملفات المستقلة، وتُختصر الفراغات بين الوسوم إلى مسافة واحدة. والنص البرمجي المضمن المعطوب لا يُفسد بقية الصفحة؛ إذ تُترك تلك الكتلة كما كانت.

أدوات ذات صلة