Wenn eine mit Webpack und Babel Reagieren und Redux Anwendung Kompilieren erhalte ich:kann nicht zuweisen nur Eigenschaft lesen '__esModule'
Uncaught TypeError: Cannot assign to read only property '__esModule' of #<Object>
In einigen älteren Browsern (< = Chrome 1, Android 4, Safari 5).
Dieses Problem scheint von redux und react-redux Ausgabe der Linie exports.__esModule = true;
im lib
bauen, aber meine Anwendung mit Object.defineProperty
statt Einhalt zu gebieten (weil sie build loosely und ich nicht).
Zwei Lösungen sind:
Aufbau meiner Anwendung auch in
loose
Modus.Importieren
react-redux/src
undredux/src
und bauen Sie es mit der gleichen .babelrc als die Anwendung (alles ist nicht lose).
Solange sie konsistent und beide sind:
Object.defineProperty(exports, "__esModule", {
value: true
});
und exports.__esModule = true;
nicht koexistieren in meiner Ausgabe, funktioniert alles.
Meine Frage ist, was ist die richtige Lösung? Warum betrifft dies nur ältere Browser? Und warum widersprechen sie sich?
Hier ist ein similar question.
Ich bin mir nicht sicher, warum das scheitern würde. Es wird nur einmal am Anfang eines Moduls zugewiesen, nichts sollte es jemals neu zuweisen, so dass der Fehler sehr seltsam ist. Können Sie sehen, wo es den tatsächlichen Fehler wirft? – loganfsmyth
Es wirft das erste importierte Modul ein, in dem 'exports .__ esModule = true;' vorhanden ist. Ich nehme an, nachdem die erste 'Object.defineProperty' aufgerufen wurde, dass das geteilte Exportobjekt nur gelesen wird, so bricht die Zuweisung in späteren Modulen, die lose erstellt wurden (aber nur in den genannten Browsern löst). Es könnte sein, dass ich die Marke komplett verpasse, da ich außer dem angegebenen Link anscheinend niemanden mit diesem Problem ausgraben kann. –
Darüber bin ich allerdings verwirrt. 'exports' wird nicht geteilt, es sollte immer nur auf ein einzelnes Modul beschränkt sein. – loganfsmyth