JavaScript / دليل حلول تحريري
فشل تحميل ESM وCommonJS ووحدات المتصفح
افصل الصياغة وحل البيئة والجلب والربط والتقييم. شخّص فشل الاستيراد بدليل المورد الفعلي بدلاً من التبديل المتكرر بين import وrequire.
قاعدة معرفة للقراءة فقط · بلا تعليقات عامة
تعرّف على الأعراض
يبلغ المتصفح عن محدد غير محلول أو رمز غير متوقع، أو يبلغ Node عن نمط وحدة غير متوافق أو تصدير غائب. قد ينزل الملف وينهار قبل التهيئة. احفظ العنوان أو الملف والتشخيص الدقيق وإعداد البيئة والوحدة.
افهم الأسباب المحتملة
- تشمل الأسباب برنامج متصفح عادياً يحوي صياغة وحدة واسم حزمة بلا حل وصفحة HTML بديلة وMIME أو أصل غير مناسب وافتراضات CommonJS/ESM متعارضة. تنتمي الدورة أو الاستثناء الأعلى للتقييم أو التهيئة لا الجلب بالضرورة.
1. تحديد البيئة ونمط الوحدة
حدّد المتصفح أو عملية Node أو أداة البناء. استخدم في المتصفح برنامج وحدة للصياغة الساكنة وقدّم من أصل HTTP مضبوط لفحص واقعي. افحص في Node الامتداد وإعداد الحزمة الأقرب المحددين للتفسير. require وmodule.exports إمكانا CommonJS لا متغيرا لغة عامان. لا تغير إعدادات عدة معاً كيلا يخفي إخفاق ثان الافتراض الأول.
2. فحص المورد ومسار الحل بدقة
افحص عنوان المتصفح النهائي والحالة وMIME ومقدمة صغيرة. تعني 200 مع HTML غالباً تقديم صفحة بديلة مكان الوحدة. يحل النسبي من عنوان الوحدة المستوردة لا جذر مشروع متخيل. يحتاج الاسم المجرد خريطة أو بناء. يحتاج فشل الأصل سياسة خادم صحيحة لا تعطيل حماية المتصفح. احصر التشخيص في موارد محلية مملوكة أو قراءة مصرح بها.
3. التحقق من عقد التصدير مستقلاً
افحص التصدير المسمى والافتراضي والإصدار الفعلي. يختبر المثال تصديراً مسمى بـdata محلي لا يجلب حزمة ولا يثبت إعداد الخادم. إذا نجح الربط ورمى الأعلى فاعزل خطأ التنفيذ وترتيب التهيئة والدورات. لا تستورد عاماً متغيراً لكسر دورة فقط؛ ففصل التعريفات أو بدء صريح أوضح اتجاهياً.
const source = "export function double(value) { return value * 2; }";
const namespace = await import("data:text/javascript," + encodeURIComponent(source));
console.log(typeof namespace.double);
console.log(namespace.double(4));
function
8
يكشف مجال الأسماء double بالاسم، ويحتاج الافتراضي عقد تصدير افتراضي مطابقاً.
4. إصلاح حد واحد بدلاً من خلط المحملات
اختر عقد المشروع وحوّل عند حد مقصود إن لزم توافق CommonJS. راجع قواعد إصدار Node الفعلي ولا تفترض تطابق الاستيراد المسمى لكل حزمة. لا يحمل المتصفح واجهة ملفات Node لقبول البناء للصياغة. افصل المجال المحمول من محولات البيئة وأزل المخرجات القديمة والمسارات الخاطئة بإجراء البناء الموثق. لا تعدّل ملفات الاعتماد المثبتة كإصلاح دائم.
تحقق من نجاح الإصلاح
تحقق من تحميل الحد الأدنى وأسماء التصدير والنتيجة، ثم مدخل التطبيق من أصل متصفح نظيف أو نمط Node المقصود. أكد محتوى JavaScript وMIME وحل الاستيرادات وعدم استثناء التهيئة أو اعتماد على عام خاص ببيئة أخرى.
امنع تكرار المشكلة
- وثّق النمط وقواعد الملفات والمحددات والتقديم والإصدارات. اجعل الاعتماد اتجاهياً والتهيئة ظاهرة. أدرج فحص مدخل نظيفاً حتى لا يخفي نجاح الوحدة الخالصة محملاً معطلاً أو صفحة بديلة خاطئة.