Socket.io-client: تم كسر تحميل IE 11 بسبب القيمة "الرئيسية" الخاطئة في package.json

تم إنشاؤها على ٢٠ فبراير ٢٠٢٠  ·  6تعليقات  ·  مصدر: socketio/socket.io-client

اتريد:

  • [x] أبلغ عن خطأ
  • [] طلب ميزة

السلوك الحالي

ما الذي يحدث بالفعل؟

باتباع المثال الرسمي لاستخدام:

import io from 'socket.io-client';

في تطبيق JS يؤدي إلى موقع معطل في IE 11.

من خلال كسر ، لا أعني أن وظيفة socket-io لا تعمل ، ولكنها تعطل تحميل حزمة تطبيق الويب بالكامل ، بما في ذلك الإبلاغ عن الأخطاء وما إلى ذلك ، لأن لا أحد يختبر على IE 11 ربما لم يلاحظ أحد هذا الخطأ حقًا.

خطوات إعادة الإنتاج (إذا كان السلوك الحالي خطأ)

ما عليك سوى إضافة import io from 'socket.io-client' في تطبيق الويب والاختبار في IE 11.

سلوك متوقع

ما هو متوقع؟

يجب أن يقوم IE 11 بتحميل الحزمة

اقامة

  • نظام التشغيل: Win 10
  • المتصفح: IE 11
  • إصدار socket.io:

معلومات أخرى (مثل stacktraces والمشكلات ذات الصلة واقتراحات كيفية الإصلاح)

سبب حدوث ذلك هو أن القيمة "main" في package.json تحدد شفرة المصدر غير المجمعة ، وليس مجلد dist المجمع ، وبالتالي يتم تجميع كود المصدر. من المحتمل أن تقوم بعض الحزم أيضًا بمعالجة الوحدات التي تم استيرادها ، لكن إصداري من Webpack لا يقوم بمعالجة التعليمات البرمجية المصدر الخاصة بالمستخدم فقط.

سيكون الحل بسيطًا للغاية ، لتحديد أحد ملفات dist على أنه القيمة "الرئيسية".

كحل بديل ، أستخدم هذا الخط ، والذي يعمل:

import io from 'socket.io-client/dist/socket.io.slim.js'

التعليق الأكثر فائدة

الحل يعمل بالنسبة لي أيضًا ، شكرًا!

ال 6 كومينتر

لديك نفس المشكلة. الحل يعمل بالنسبة لي: +1:

حسن!

الحل يعمل بالنسبة لي أيضًا ، شكرًا!

إنه يعمل معي أيضًا ، عمل جيد. شكراhyperknot !!

حتى يعرف الآخرون ، ها هو في وحدة التحكم:
image

تمت إعادة التبعية debug إلى 3.1.0 ، والتي لا تحتاج إلى التحويل. صدر في 2.3.1 .

يرجى ملاحظة أنه يمكنك أيضًا استخدام المكون الإضافي webpack-remove-debug ، من أجل إزالة أي استدعاء لتبعية debug (حتى نجد طريقة مناسبة لتوفير بنية مع تصحيح أخطاء وبدون تصحيح).

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات