ما الذي يحدث بالفعل؟
باتباع المثال الرسمي لاستخدام:
import io from 'socket.io-client';
في تطبيق JS يؤدي إلى موقع معطل في IE 11.
من خلال كسر ، لا أعني أن وظيفة socket-io لا تعمل ، ولكنها تعطل تحميل حزمة تطبيق الويب بالكامل ، بما في ذلك الإبلاغ عن الأخطاء وما إلى ذلك ، لأن لا أحد يختبر على IE 11 ربما لم يلاحظ أحد هذا الخطأ حقًا.
ما عليك سوى إضافة import io from 'socket.io-client'
في تطبيق الويب والاختبار في IE 11.
ما هو متوقع؟
يجب أن يقوم IE 11 بتحميل الحزمة
سبب حدوث ذلك هو أن القيمة "main" في package.json تحدد شفرة المصدر غير المجمعة ، وليس مجلد dist المجمع ، وبالتالي يتم تجميع كود المصدر. من المحتمل أن تقوم بعض الحزم أيضًا بمعالجة الوحدات التي تم استيرادها ، لكن إصداري من Webpack لا يقوم بمعالجة التعليمات البرمجية المصدر الخاصة بالمستخدم فقط.
سيكون الحل بسيطًا للغاية ، لتحديد أحد ملفات dist على أنه القيمة "الرئيسية".
كحل بديل ، أستخدم هذا الخط ، والذي يعمل:
import io from 'socket.io-client/dist/socket.io.slim.js'
لديك نفس المشكلة. الحل يعمل بالنسبة لي: +1:
حسن!
الحل يعمل بالنسبة لي أيضًا ، شكرًا!
إنه يعمل معي أيضًا ، عمل جيد. شكراhyperknot !!
حتى يعرف الآخرون ، ها هو في وحدة التحكم:
تمت إعادة التبعية debug
إلى 3.1.0
، والتي لا تحتاج إلى التحويل. صدر في 2.3.1 .
يرجى ملاحظة أنه يمكنك أيضًا استخدام المكون الإضافي webpack-remove-debug ، من أجل إزالة أي استدعاء لتبعية debug (حتى نجد طريقة مناسبة لتوفير بنية مع تصحيح أخطاء وبدون تصحيح).
التعليق الأكثر فائدة
الحل يعمل بالنسبة لي أيضًا ، شكرًا!