مصغر JS

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

5 من 2 تقييمات
مصغر JS

مصغر JS أداة مجانية تحذف المحارف غير الضرورية من JavaScript، وتعرض عدد المحارف قبل التصغير وبعده.

ما المشكلة التي يحلها تصغير JavaScript؟

يقلل تصغير JavaScript مقدار النص المصدري الذي يجب على المتصفح تنزيله. وعادة ما يزيل التنسيقات غير المطلوبة في بنية JavaScript، مثل المسافات البادئة وفواصل الأسطر والمسافات البيضاء.

يمكن للنص البرمجي الأصغر أن يقلل حجم النقل وعبء التحليل، خصوصا عندما يرسل الموقع عدة حزم كبيرة. ومع ذلك، يظل ضغط HTTP مثل Brotli أو gzip مهما، لأن التصغير وضغط النقل يعالجان جانبين مختلفين من المشكلة. يحذف التصغير المحارف من المصدر، بينما يرمز الضغط البيانات المتكررة بكفاءة أكبر أثناء النقل.

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

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

كيف أستخدم مصغر JS؟

الصق JavaScript في حقل JS وشغل الأداة، ثم انسخ القيمة الظاهرة في JS المصغر. احتفظ بالملف المصدري الأصلي في نظام التحكم في الإصدارات، وانشر النسخة المضغوطة بدلا من استبدال المصدر المقروء بها.

  1. افحص أولا بنية الشيفرة المصدرية، وشغل أداة التحليل الساكن والاختبارات الآلية عليها.
  2. الصق النص البرمجي كاملا في JS، بما في ذلك أي عمليات استيراد للوحدات أو دوال تغليف تابعة للملف.
  3. راجع محارف JS ومحارف JS المصغر لمعرفة الفرق في عدد المحارف.
  4. اختبر JavaScript المصغر للتأكد من أنه يعمل بصورة صحيحة في المتصفح نفسه وضمن سياق النشر المستخدم لملف الإنتاج.
  5. استخدم اسم ملف واضحا مثل app.min.js إذا كنت ستحتفظ بالنسختين المصغرة والمقروءة معا.
أداة مصغر JS على digily.link مع نموذج الإدخال

تُنفذ المعالجة على الخادم. تنتقل مدخلاتك إليه عبر HTTPS ولا تُخزن. ومع ذلك، لا بد أن يستقبل الخادم شيفرة JavaScript لمعالجتها، لذلك لا ترسل أي مصدر تحظر مؤسستك إرساله إلى خدمة خارجية.

ماذا تتضمن النتيجة المصغرة؟

تتضمن النتيجة شيفرة JavaScript المضغوطة وعددين للمحارف. يعرض محارف JS طول المدخل، بينما يعرض محارف JS المصغر طول القيمة الناتجة في JS المصغر.

تُحسب هذه القيم باستخدام دالة mb_strlen في PHP، التي تقيس طول السلاسل متعددة البايتات بدلا من عرض عدد البايتات فقط. لذلك لا يساوي عدد المحارف بالضرورة الحجم النهائي المنقول عبر الشبكة. فقد يشغل محرف UTF-8 أكثر من بايت واحد، كما يمكن أن يقلل gzip أو Brotli حجم الملف المنقول بدرجة أكبر.

لا تعرض هذه الأداة حقلا منفصلا للتحقق أو التشخيص. فلا تتوقع منها اكتشاف كل قوس مفقود، أو تعبير نمطي غير صالح، أو ميزة لغوية غير مدعومة. وبالأخص، لا تصلح الأخطاء المرتبطة بـ JSON، مثل أسماء الخصائص غير المحاطة بعلامات اقتباس أو الفواصل اللاحقة، كاختبارات موثوقة لـ JavaScript، لأن بنية كائنات JavaScript تختلف عن بنية JSON. استخدم أداة مدقق ومُجمّل JSON لبيانات JSON.

مثال على نتيجة أنتجتها أداة مصغر JS

أمثلة صغيرة ومدخلات تحتاج إلى انتباه

يمكن تمثيل تغيير بسيط في المسافات كما يلي.

المدخل

function add(a, b) { return a + b; }

الصيغة المضغوطة

function add(a,b){return a+b;}

يمكن أيضا حذف التنسيق المحيط بكائن من دون تغيير قيم خصائصه.

المدخل

const settings = { theme: "dark", retries: 2 };

الصيغة المضغوطة

const settings={theme:"dark",retries:2};

قد يختلف التنسيق الدقيق من أداة تصغير إلى أخرى، خصوصا عند التعامل مع الفواصل المنقوطة الاختيارية. ولا يمكن ضغط JavaScript بأمان عبر حذف كل مسافة أو فاصل أسطر. يجب أن يراعي التصغير الآمن السياق المعجمي والنحوي، حتى يميز بين التنسيق والمحارف التي تؤثر في البرنامج.

  • المسافات داخل السلاسل النصية: تُعد بيانات. لذا يجب الإبقاء على المسافة في "Newcastle upon Tyne".
  • علامات الترقيم: قد تكون جزءا من البنية النحوية. فحذف المسافة من a + +b قد ينتج تسلسلا مختلفا من الرموز.
  • فواصل الأسطر: تؤثر أحيانا في الإدراج التلقائي للفواصل المنقوطة، بما في ذلك الشيفرة التي تلي return أو break أو continue. ولا يُسمح بوضع فاصل أسطر مباشرة بعد throw، لأن التعبير الخاص بها يجب أن يبدأ في السطر نفسه.
  • المحارف ذات العلامات والحروف غير اللاتينية: قد تظهر في السلاسل النصية، وكذلك في المعرّفات عندما تسمح قواعد معرّفات JavaScript بذلك. وقد يختلف حجمها بالبايت عن عدد محارفها.
  • الأرقام: هي رموز في الشيفرة المصدرية، وليست تعليمات لحساب المحارف. ويجب أن تحافظ أداة التصغير على قيمتها العددية، حتى إذا اختارت صيغة مكافئة أقصر.

متى لا يستحق تصغير JavaScript العناء؟

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

ولا توجد فائدة كبيرة من تنسيق JavaScript ثم تصغيره إذا كانت آلة فقط ستقرأه. احتفظ بمصدر واضح للبشر لأغراض الصيانة، وأنشئ منه ملفات النشر. في التطبيقات القائمة، تكون أداة بناء مثل esbuild أو Rollup أو webpack أنسب عموما، لأنها تستطيع أتمتة تجميع الوحدات وإنشاء خرائط المصدر. وقد يكون التصغير مدمجا فيها، أو يمكن إضافته عبر الإعدادات أو مكون إضافي، بينما تُعد Terser أداة مخصصة للتصغير.

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

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

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

هل تنشئ الأداة خريطة مصدر؟

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

هل يمنع التصغير الآخرين من نسخ JavaScript؟

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

هل يمكنني لصق شيفرة تحتوي على مفاتيح API؟

لا تلصق مفاتيح API السرية أو الرموز المميزة أو بيانات الاعتماد الخاصة. تُرسل المدخلات عبر HTTPS ولا تُخزن، لكن المعالجة تتم على الخادم. أما مفاتيح المتصفح العامة التي تُوزع عمدا على كل زائر، فلا تزال بحاجة إلى قيود على النطاق أو المصدر أو الحصة أو الأذونات عندما تدعم الخدمة المعنية ذلك.

هل يؤدي انخفاض عدد المحارف دائما إلى تحميل الصفحة بسرعة أكبر؟

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

هل أحتفظ بالامتداد .js بعد التصغير؟

نعم. يحتفظ JavaScript المصغر عادة بالامتداد .js، ويُستخدم .min.js كاصطلاح للتسمية عند وجود النسختين. قبل النشر، تأكد من أن الخادم يرسل نوع محتوى مناسبا لـ JavaScript، وأن HTML أو استيراد الوحدة يشير إلى الملف المقصود.

أدوات مشابهة

مُصَغِّر HTML

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

5،284
58
مصغر CSS

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

4،780
40

الأدوات الشائعة