Ist es besser, Polyfills als import-Anweisungen mit babel-preset-env zu haben oder sie in den Einträgen von webpack.config.js hinzuzufügen?

8

babel-preset-env bietet die Option useBuiltIns , um sie auf babel-polyfill anzuwenden und% zu transformieren. co_de% auf spezifische, umgebungsbasierte, import 'babel-polyfill' .

Wird diese Transformation angewendet, wenn ich import 'core-js/whatever in meinem Webpack-Eintragsabschnitt hinzufüge (siehe Beispiel unten), oder wird in diesem Fall babel-polyfill ignoriert und durch alle möglichen Importe ersetzt?

%Vor%     
Alf 07.04.2017, 15:44
quelle

1 Antwort

4

Es funktioniert, wenn Sie angeben:

%Vor%

Es bezieht sich nicht auf den Einstiegspunkt, da Ihr ./src/app.js bereits einen Code mit Anforderungen enthält , denke ich. Ich verstehe einfach nicht, was Sie erreichen möchten, indem Sie babel-polyfill zum Einstiegspunkt hinzufügen, scheint aber in diesem Fall keine Wirkung zu haben.

Ich werde versuchen, zu erklären, wie es funktioniert. Es gibt ein babel-preset-env -Plugin, das die Liste der Transformations-Plugins und Polyfills vorbereitet. Diese Liste wird von transform-polyfill-require-plugin verwendet, die nach import und require -Anweisungen suchen und diese durch eine Liste von umgebungsspezifischen Modulen ersetzen.

Es bezieht sich überhaupt nicht auf den Einstiegspunkt. Indem Sie babel-polyfill hinzufügen, fügen Sie einfach den Code in Ihr Paket ein. Also funktioniert transform-polyfill-require-plugin sowieso nicht. Es ist möglich, es über ein einfaches Debugging zu überprüfen.

Und du brauchst es nicht wirklich. Sie können require("babel-polyfill"); nur einmal in Ihrer App hinzufügen, wie es in den Dokumenten bemerkt wird. Sie können babel-polyfill nicht zweimal importieren, da dies zu einem Fehler führen kann, da es sich selbst in global schreibt und eine Überprüfung auf die Kollision durchführt.

    
Roman Maksimov 25.04.2017 14:07
quelle