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.
Fügen Sie einfach import io from 'socket.io-client'
in einer Web-App hinzu und testen Sie in IE 11.
Was wird erwartet?
IE 11 sollte das Bundle laden
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'
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:
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).
Hilfreichster Kommentar
Workaround funktioniert bei mir auch, danke!