ES6-Modulverkettung

8

Ich entwickle ein Webprojekt in JavaScript ES6 und verwende derzeit Traceur , um meine Module zu kompilieren von ES6 zu ES5, wenn ich bedenke, dass der Browser in der Zukunft ES6 überspringen kann, wäre ich in der Lage, diesen Schritt zu überspringen.

Da ich zum Start einige js Stücke nicht herunterladen möchte, habe ich eine einzige Datei, die alle meine Module enthält, die dank Traceur in ES5 konvertiert wurden.

Aber um diese Wahl zu bestätigen, habe ich mich gefragt, ob das noch möglich sein könnte, an dem Tag, an dem ich die Quelle in ES6 behalten würde. Wenn ich sie einfach verkette, wird es ungültige Importe und Namenskonflikte geben.

Es sieht so aus, als ob es nicht dafür entworfen wurde und es würde einen zusätzlichen Verarbeitungsschritt erfordern, um sie korrekt zusammenzuführen.

Wie sollen wir das ES6-Einzelprojekt behandeln, das mit mehreren Modulen definiert wurde?

    
JBE 06.11.2014, 23:50
quelle

3 Antworten

4

Dies wird durch Bündelung gelöst, wie hier beschrieben: Ссылка in Kapitel 3 . Das ist also möglich und validiert Ihren Ansatz, obwohl ich keine Implementierung des entsprechenden Kompilierungsschritts im Web finden konnte, aber es sollte entstehen, wenn Leute ES6-Module verwenden.

    
jolivier 06.11.2014, 23:52
quelle
1

In naher Zukunft wird es nicht mehr notwendig sein, ein einzelnes Dateiprojekt dank HTTP/2 zu erstellen.

Siehe: Warum Bündel-Optimierungen sind nein länger ein Problem in HTTP / 2

    
JBE 29.09.2015 23:01
quelle
0

Die beste Lösung wird wahrscheinlich sein, browserify zu verwenden, um Ihren übertragenen Code in eine Datei zu bündeln. Dann würde ich uglify oder den Closure-Compiler von Google verwenden, um die Datei zu minimieren, da bei allen zu bearbeitenden Importen / Exporten ein kleiner Overhead entsteht.

Wenn Sie Babel anstelle von Traceur verwenden möchten, gibt es auch ein Babel-Plugin für browserify, um die Dinge wirklich einfach zu machen.

    
Thomas Foster 08.08.2015 15:22
quelle