Socket.io-client: Fehler beim Laden von IE 11 wegen falschem "main"-Wert in package.json

Erstellt am 20. Feb. 2020  ·  6Kommentare  ·  Quelle: socketio/socket.io-client

Du möchtest:

  • [x] einen Fehler melden
  • [ ] Feature anfordern

Aktuelles Verhalten

Was passiert eigentlich?

Nach dem offiziellen Beispiel für die Verwendung:

import io from 'socket.io-client';

in einer JS-App führt zu einer defekten Site in IE 11.

Mit kaputt meine ich nicht, dass die Socket-io-Funktionalität nicht funktioniert, sondern dass das Laden des gesamten Web-App-Bundles einschließlich Fehlerbericht usw. unterbrochen wird. Da niemand den IE 11 testet, ist dieser Fehler wahrscheinlich niemandem aufgefallen.

Schritte zum Reproduzieren (wenn das aktuelle Verhalten ein Fehler ist)

Fügen Sie einfach import io from 'socket.io-client' in einer Web-App hinzu und testen Sie in IE 11.

Erwartetes Verhalten

Was wird erwartet?

IE 11 sollte das Bundle laden

Aufstellen

  • Betriebssystem: Win 10
  • Browser: IE 11
  • socket.io-Version:

Sonstige Informationen (z. B. Stacktraces, verwandte Probleme, Vorschläge zur Behebung)

Der Grund dafür ist, dass der Wert "main" in package.json den ungebündelten Quellcode angibt, nicht den gebündelten Ordner dist, sodass der Quellcode gebündelt wird. Wahrscheinlich verarbeiten einige Bundler auch die importierten Module, aber meine Version von Webpack verarbeitet nicht, sie verarbeitet nur den Quellcode des Benutzers.

Die Lösung wäre sehr einfach, eine der dist-Dateien als "main"-Wert anzugeben.

Als Workaround verwende ich diese Zeile, die funktioniert:

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

Hilfreichster Kommentar

Workaround funktioniert bei mir auch, danke!

Alle 6 Kommentare

Habe das gleiche Problem. Bei mir funktioniert der Workaround :+1:

Gut!

Workaround funktioniert bei mir auch, danke!

Bei mir funktioniert es auch, Guter Job. danke @hyperknot!!

Damit es andere wissen, hier in der Konsole:
image

Die Abhängigkeit von debug wurde auf 3.1.0 , die nicht transpiliert werden muss. Veröffentlicht in 2.3.1 .

Bitte beachten Sie, dass Sie auch das webpack-remove-debug- Plugin verwenden können, um jeden Aufruf der Debug-Abhängigkeit zu entfernen (bis wir einen geeigneten Weg gefunden haben, einen Build mit und ohne Debug bereitzustellen).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen