- ما هو Closure Compiler؟ لماذا يجب استخدامها؟
- ما هي أوجه الاختلاف بين Closure Compiler وبرامج ضغط JavaScript الأخرى المتاحة؟
- هل يمكن لبرنامج Closure Compiler تجميع رمز JavaScript المضمّن في HTML؟
- هل يمكنني استخدام Closure Compiler مع أدوات تصغير أخرى لملفات JavaScript؟
- كيف يمكنني تصحيح أخطاء JavaScript التي ينتجها Closure Compiler؟
- هل يقدّم المحوّل البرمجي أي تسوية بين سرعة تنفيذ تطبيقي وحجم رمز التنزيل؟
- هل يحسّن المترجم البرمجي الأداء من أجل زيادة السرعة؟
- هل هناك أي قيود على حجم الملفات التي يمكن تجميعها؟
- هل يتوفّر Closure Compiler لجميع المنصات؟
- هل يمكن للمحوّل البرمجي معالجة أي رمز JavaScript صالح؟
- كيف يعمل Closure Compiler مع Closure Library؟
-
يتوقّف الرمز عن العمل أو يعرض برنامج التجميع أخطاء عند التجميع باستخدام
ADVANCED_OPTIMIZATIONS
. لماذا؟ - لماذا تظهر فواصل أسطر عشوائية في النصوص البرمجية المجمّعة؟
- لديّ إشعارات حقوق طبع ونشر أو نص ترخيص برامج مفتوحة المصدر يجب أن يظهر في رمز المصدر. كيف يمكنني منع Closure Compiler من إزالة هذا النص؟
- ما هو Closure Compiler؟ لماذا يجب استخدامها؟
- Closure Compiler هي أداة لتسريع عملية تنزيل JavaScript وتشغيلها. يمكنك استخدام Closure Compiler لتقليل حجم ملفات JavaScript وزيادة فعاليتها.
- ما هي أوجه الاختلاف بين Closure Compiler وبرامج ضغط JavaScript الأخرى المتاحة؟
-
بشكل عام، يجب أن يفي برنامج Closure Compiler بمتطلبات الضغط أو يتجاوزها مقارنةً بأدوات تصغير الرموز الأخرى، وأن يحسّن أوقات التنزيل لتطبيق الويب. بالإضافة إلى ذلك، يمكن أن يساعدك Closure Compiler في العثور على أخطاء في بناء الجملة أثناء التطوير (بدلاً من أثناء الاختبار) وتحديد أنماط الرموز البرمجية التي قد تحتوي على أخطاء.
في "الوضع البسيط"، من المفترض أن يكون أداء Closure Compiler أفضل من أداء الأدوات الأخرى لأنّه يستخدم تحليلًا مشابهًا للمترجم البرمجي للعثور على طرق إضافية لتقليل حجم الرمز البرمجي. على سبيل المثال، يمكن لبرنامج Closure Compiler تضمين الدوال التي يتم استخدامها في عدد قليل من المواضع، وإعادة استخدام أسماء المتغيرات، وإجراء العمليات الحسابية مسبقًا للتعبيرات الثابتة.
في "الوضع المتقدّم"، يمكن أن تستخدم أداة Closure Compiler أيضًا التعليقات التوضيحية الخاصة بالأنواع التي أضفتها للعثور على الأخطاء التي يصعب رصدها.
- لا، لا يعمل Closure Compiler إلا على الملفات التي تحتوي على JavaScript فقط.
- هل يمكنني استخدام Closure Compiler مع أدوات تصغير أخرى لملفات JavaScript؟
-
نعم. يقرأ Closure Compiler أي JavaScript صالح وينشئ JavaScript صالحًا، لذا يمكنك تطبيق Closure Compiler على ملف JavaScript إما قبل أو بعد تشغيل الملف من خلال أداة تصغير مختلفة.
تذكَّر أنّ Closure Compiler وبرامج التصغير الأخرى قد تتضمّن توقعات بشأن الرمز البرمجي الوارد. قد يؤدي برنامج التصغير الذي يزيل التعليقات إلى إزالة التراخيص أو معلومات التعليقات التوضيحية التي تحتاج إليها أداة أخرى، على سبيل المثال.
- كيف يمكنني تصحيح أخطاء JavaScript التي ينتجها Closure Compiler؟
-
إذا كان الرمز البرمجي الذي تم تجميعه يعرض أخطاء أو سلوكًا غير متوقع،
يمكنك استخدام "خرائط المصدر" لتصحيح الخطأ. توفّر خريطة المصدر عملية ربط بين الرمز البرمجي المجمَّع ورمز المصدر الأصلي، ما يتيح لأدوات المطوّرين في المتصفّح عرض رمز المصدر الأصلي بدلاً من الرمز البرمجي المجمَّع.
لجعل Closure Compiler ينتج خريطة مصدر، مرِّر العلامة
--create_source_map
على سطر الأوامر. على سبيل المثال: بعد ذلك، إذا كنت تستخدم متصفّحًا يتوافق مع Source Maps (مثل Chrome أو Firefox)، يمكنك ضبط نقاط توقّف كما تفعل مع الرمز غير المجمَّع، وستعرض أدوات المطوّرين في المتصفّح سطر الرمز المقابل في المصدر الأصلي. لمزيد من المعلومات حول أدوات المطوّرين في Chrome، بما في ذلك معلومات حول خرائط المصدر، يُرجى الاطّلاع على تصحيح أخطاء JavaScript.$ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js
- هل يقدّم المترجم أي تسوية بين سرعة تنفيذ التطبيق وحجم رمز التنزيل؟
- نعم. يُجري أي برنامج تجميع محسِّن مفاضلات. تتسبّب بعض تحسينات الحجم في حدوث بعض النفقات العامة الصغيرة المتعلقة بالسرعة. ومع ذلك، حرص مطوّرو Closure Compiler على عدم إضافة وقت تشغيل إضافي كبير. بل إنّ بعض تحسينات المترجم البرمجي تؤدي إلى تقليل وقت التشغيل (راجِع السؤال التالي).
- هل يحسّن المترجم سرعة التنفيذ؟
- في معظم الحالات، تكون الشفرة الأصغر حجمًا أسرع، لأنّ وقت التنزيل هو عادةً أهم عامل في سرعة تطبيقات الويب. تساهم التحسينات التي تقلّل من التكرار في تسريع وقت تشغيل الرمز البرمجي أيضًا.
- هل هناك أي قيود على حجم الملفات التي يمكن تجميعها؟
- تتضمّن خدمة الويب الخاصة بالتجميع حدًا أقصى لحجم الملف، ولكن لا يتضمّن تطبيق المجمّع المستقل هذا الحد.
- هل يتوفّر Closure Compiler لجميع المنصات؟
- تمت كتابة برنامج الترجمة البرمجية بلغة Java، لذا يمكن تشغيله في أي مكان يتم فيه تشغيل Java.
- هل يمكن للمحوّل البرمجي معالجة أي JavaScript قانوني؟
-
في معظم الأحيان. يمكن أن تؤدي بعض بنى JavaScript، بما في ذلك
eval()
وwith()
، إلى إبطال الافتراضات التي تستند إليها عمليات التحويل التي يجريها المحوّل البرمجي. - ما مقدار المعلومات التي أحتاج إلى معرفتها حول تطوير الويب لاستخدام Closure Compiler؟
- Closure Compiler هي أداة لتطوير JavaScript، لذا يجب أن تعرف كيفية البرمجة بلغة JavaScript لاستخدام المحوّل البرمجي. ومع ذلك، يمكن لأي شخص يستخدم JavaScript الاستفادة من استخدام أداة Closure Compiler.
- كيف يعمل Closure Compiler مع Closure Library؟
- يوفّر Closure Compiler عمليات تحقّق وتحسين خاصة للرموز التي تستخدم Closure Library. بالإضافة إلى ذلك، يمكن لخدمة Closure Compiler تضمين ملفات Closure Library تلقائيًا. توضّح طريقة العثور على ما تحتاج إليه في Closure بنية الإعلان عن أجزاء Closure التي تحتاج إليها. راجِع مرجع واجهة برمجة التطبيقات للحصول على معلومات حول استخدام Closure Library مع واجهة برمجة التطبيقات. لاستخدام Closure Library مع تطبيق Closure Compiler، عليك أولاً تنزيل Closure Library. يتم تفعيل التوافق مع Closure Library في تطبيق المحول البرمجي تلقائيًا.
-
يتوقّف الرمز البرمجي عن العمل أو يعرض "المترجم" أخطاءً عند الترجمة باستخدام
ADVANCED_OPTIMIZATIONS
. لماذا؟ -
يتطلّب استخدام الوضع المتقدّم عادةً بعض التحضير وإجراء تغييرات على الرمز. توضّح مقالة الترجمة البرمجية المتقدّمة
والتعريفات الخارجية كيفية التأكّد من أنّ الرمز البرمجي يعمل
مع
ADVANCED_OPTIMIZATIONS
. - لماذا تظهر فواصل أسطر عشوائية في البرامج النصية المجمَّعة؟
- يضيف Closure Compiler فواصل أسطر عمدًا كل 500 حرف تقريبًا، لأنّ برامج جدار الحماية والخوادم الوكيلة تتلف أحيانًا ملفات JavaScript الكبيرة التي تحتوي على أسطر طويلة جدًا أو تتجاهلها. يمكن تجنُّب هذه المشكلة من خلال إضافة فواصل أسطر كل 500 حرف. لا تؤثر إزالة فواصل الأسطر في دلالات النص البرمجي. يكون التأثير على حجم الرمز البرمجي صغيرًا، ويحسِّن المحوّل البرمجي موضع فواصل الأسطر ليكون تأثير حجم الرمز البرمجي أصغر عند ضغط الملفات باستخدام gzip.
- لديّ إشعارات حقوق طبع ونشر أو نص ترخيص برامج مفتوحة المصدر يجب أن يظهر في رمز المصدر. كيف يمكنني منع Closure Compiler من إزالة هذا النص؟
-
يتوافق Closure Compiler مع علامة
@license
JSDoc. أضِف العلامة@license
إلى أي تعليق JSDoc للاحتفاظ بالتعليق في ناتج المترجم. يمكنك الاطّلاع على إضافة تعليقات توضيحية إلى JavaScript من أجل Closure Compiler للحصول على مزيد من المعلومات.