تصدير رمز مميز غير متوقع: احتضان دعم وحدة ES6
قد تكون مواجهة خطأ "تصدير رمز مميز غير متوقع" أثناء محاولة تشغيل كود ES6 أمرًا محيرًا مشكلة. ينشأ هذا الخطأ عندما تفتقر بيئة وقت التشغيل إلى دعم بناء جملة EcmaScript Module (ESM) الذي تستخدمه.
فهم ESM:
ESM، يشار إليها غالبًا باسم " وحدات ES6"، قدمت نظامًا نمطيًا لجافا سكريبت، مما يتيح تغليف التعليمات البرمجية وإدارة التبعية بشكل أسهل. يستخدم الكلمة الرئيسية للتصدير لتحديد الوحدات، مما يجعل تنظيم التعليمات البرمجية أكثر وضوحًا.
دعم ESM:
إصدارات NodeJS أدناه v14.13.0 لم تدعم ESM واعتمدت بدلاً من ذلك على وحدات CommonJS، التي تستخدم بناء جملة الخاصية Module.exports. ومع ذلك، تدعم إصدارات NodeJS الأحدث (الإصدار 14.13.0 وما فوق) ESM، بشرط تمكينها بشكل صريح.
الحلول:
تمكين ESM في NodeJS (الإصدار 14) .13.0 ):
قم بتحرير ملف package.json الخاص بمشروعك وقم بتعيين خاصية "النوع" على "الوحدة النمطية":
{ ... "type": "module", ... }
إعادة البناء باستخدام بناء جملة وحدة CommonJS:
بالنسبة لإصدارات NodeJS الأقدم، قم بإعادة بناء التعليمات البرمجية الخاصة بك لاستخدام بناء جملة وحدة CommonJS:// مثال ES6 وحدة فئة التصدير MyClass { منشئ () { console.log("es6"); } } // ما يعادل وحدة CommonJS Module.exports = فئة MyClass { منشئ () { console.log("commonJs"); } };// Example ES6 module export class MyClass { constructor() { console.log("es6"); } } // CommonJS module equivalent module.exports = class MyClass { constructor() { console.log("commonJs"); } };
استخدم TypeScript وts-node:
فكر في استخدام TypeScript جنبًا إلى جنب مع حزم ts-node أو ts-node-dev npm. ينقل TypeScript إلى JavaScript في وقت الترجمة، مما يجعل كود ES6 متوافقًا مع إصدارات NodeJS الأقدم.
نقل ESM إلى CommonJS:
استخدم esbuild (المثبت عبر npm) لنقل بياناتك ES6 JavaScript إلى تنسيق CommonJS، مما يسمح بتشغيله في بيئات دون دعم ESM الأصلي.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3