جافاسكريبت - ECMAScript 6 لا يعمل على الرغم من تمكين JS التجريبي


لدي أحدث إصدار من كروم (45 وأيضًا كروم كاناري الذي هو في الإصدار 47)، وكلاهما مع تمكين علم جافاسكريبت التجريبي. أريد استخدام ECMAScript 6، لكنه لا يعمل. لا أعرف السبب. هل هناك أي حيلة أو علم آخر يجب تمكينه أيضًا؟

كل كلمة محجوزة في ECMAScript 6 (مثل import، class، أو أي شيء آخر) تسبب ظهور “خطأ SyntaxError غير ملتقط: كلمة محجوزة غير متوقعة” في Chrome 45 وظهور خطأ “خطأ SyntaxError غير ملتقط: رمز غير متوقع import” في Chrome Canary.

لقد طرحت هذا السؤال قبل عدة أشهر دون الحصول على أي إجابة، باستثناء “تكرار محتمل” لاستخدام ECMAScript 6، ولكنه لا يحل مشكلتي.

أريد استخدام الوحدات النمطية، لأنني أفضل وحدات ECMAScript أكثر من استخدام require من CommonJS. وأنا أيضًا أحب سكرية بناء الجملة للفئات - الشيفرة تبدو أفضل.

الإجابة رقم 1

الوحدات البرمجية غير مدعومة بشكل أصلي بعد في أي متصفح. ستحتاج إلى استخدام محول مثل Traceur أو Babel. ألقِ نظرة على أحد المصادر التالية لمساعدتك على البدء:

  • اختر وحدات ES6 اليوم!
  • ES6 بعمق: استخدام ES6 اليوم مع Babel و Broccoli
  • كتابة ES6 من جانب العميل باستخدام webpack

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

https://kangax.github.io/compat-table/es6/

حتى الآن، يمكنك أن ترى أن غالبية المتصفحات لا تدعم الفئات بعد بشكل أصلي. ومع ذلك، إذا كنت تستخدم Babel أو Traceur، فلا ينبغي أن يكون ذلك مصدر قلق.

الإجابة رقم 2

أضف type="module" إلى وسم script. هذا يجب أن يحل مشكلتك.