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


ما هي مجمِّع الإغلاق؟ ما فائدة استخدامها؟
The Closure Compiler هي أداة تتيح تنزيل JavaScript وتشغيلها بشكل أسرع. يمكنك استخدام Closure Compiler لتقليل حجم ملفات JavaScript وجعلها أكثر كفاءة.
كيف يختلف برنامج Closure Compiler عن ضواغط جافا سكريبت الأخرى المتوفرة فيه؟

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

في الوضع البسيط، يجب أن يكون Closure Compiler قادرًا على تحقيق أداء أفضل من الأدوات الأخرى لأنه يستخدم تحليلاً يشبه برامج التجميع للعثور على طرق إضافية لتقليل حجم الشفرة. على سبيل المثال، يمكن لـ Closure Compiler تضمين الدوال المستخدمة في عدد قليل من مواضع الورود وإعادة استخدام أسماء المتغيرات والتعبيرات الثابتة المحسوبة مسبقًا.

في الوضع المتقدم، يمكن أيضًا لـ Closure Compiler استخدام التعليقات التوضيحية من النوع الذي تضيفه للعثور على الأخطاء التي يصعب اكتشافها.

هل يستطيع مجمِّع Closure Compiler تجميع جافا سكريبت المضمّنة في HTML؟
لا، حيث لا يعمل مجمّع Closure Compiler إلا على الملفات التي تحتوي على JavaScript فقط.
هل يمكنني استخدام Closure Compiler مع عارضات جافا سكريبت الأخرى؟

نعم. تقرأ Closure Compiler في أي لغة JavaScript صالحة وتنشئ JavaScript صالحة، بحيث يمكنك تطبيق Closure Compiler على ملف JavaScript إما قبل تشغيل الملف أو بعده من خلال أداة تصغير مختلفة.

تذكّر أنّ Closure Compiler ومستشارين آخرين قد تكون لديهم توقّعات بشأن الرمز الوارد. على سبيل المثال، قد يزيل عامل التشغيل المُصغر الذي يزيل التعليقات التراخيص أو معلومات التعليقات التوضيحية التي تحتاج إليها أداة أخرى مثلاً.

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