مكتبة الشروحات

[ERR_REQUIRE_ESM]: يجب استخدام الاستيراد لتحميل وحدة ES.

رسالة الخطأ "Must use import to load ES Module" تحدث عادة في Node.js عندما تحاول استخدام صيغة الاستيراد ES6 (import) في وحدة CommonJS. يحدث هذا عندما تحاول استخدام صيغة وحدات ECMAScript (ESM) في ملف يقوم Node.js بترجمته كوحدة CommonJS.

إليك كيفية معالجة هذه المشكلة:

  1. تحقق من امتداد الملف:

    تأكد من أن امتداد الملف هو إما .mjs (لـ ESM) أو .js (لـ CommonJS). إذا اكتشف Node.js ملفًا بامتداد .mjs، فسيتم معالجته كوحدة ECMAScript.

  2. استخدام امتداد .mjs:

    إذا كنت تعمل مع وحدات ECMAScript، تأكد من أن امتداد الملف هو .mjs وأنك تستخدم صيغة الاستيراد بشكل صحيح.

    مثال على صيغة ESM في ملف .mjs:

    // mymodule.mjs
    const myFunction = () => {
      console.log('Hello World');
    };
    
    export { myFunction };
    
  3. تحديث إصدار Node.js:

    تأكد من أنك تستخدم إصدارًا من Node.js يدعم وحدات ECMAScript. أضاف Node.js دعم وحدات ECMAScript بدءًا من الإصدار 12، وحسنها في الإصدارات اللاحقة.

  4. تكوين package.json:

    إذا كنت تستخدم وحدات ECMAScript، تأكد من أن لديك "type": "module" في ملف package.json الخاص بك. هذا يُعلم Node.js أن يتعامل مع جميع ملفات .js كوحدات ESM.

    مثال على package.json:

    {
      "type": "module",
      "main": "index.js"
    }
    
  5. استخدام علم --experimental-modules:

    إذا كنت تستخدم إصدارًا قديمًا من Node.js، قد تحتاج إلى استخدام علم --experimental-modules لتمكين دعم ESM.

    مثال:

    node --experimental-modules mymodule.mjs
    
  6. تحقق من جمل الاستيراد:

    تأكد من أن جمل الاستيراد مكتوبة بشكل صحيح وأنها تشير إلى المسارات الصحيحة للملفات.

  7. تحقق من مسارات الملفات:

    تأكد من أن الملف الذي تحاول استيراده موجود في الموقع الصحيح بالنسبة للملف الذي تحاول الاستيراد منه.

  8. تحقق من الأخطاء الإملائية:

    تحقق جيدًا من وجود أي أخطاء إملائية أو أخطاء في الصياغة في كودك.

  9. تحقق من التوافق:

    إذا كنت تستخدم مكتبات أو وحدات من طرف ثالث، تأكد من أنها متوافقة مع وحدات ECMAScript.

  10. Babel أو الترجمة:

    إذا كنت تستخدم عملية بناء مع Babel أو مترجم مشابه، تأكد من أنه تم إعداده بشكل صحيح لمعالجة صيغة ESM.

إذا لم تحل أي من هذه الاقتراحات المشكلة، قد يكون من المفيد تقديم المزيد من السياق حول الكود الخاص بك وبيئتك حتى أتمكن من تقديم نصائح أكثر تحديدًا.

  • 0 أعضاء وجدوا هذه المقالة مفيدة
هل كانت المقالة مفيدة ؟