2014-11-06 15 views
8

ein Webprojekt in JavaScript ES6 Entwicklung, verwende ich zur Zeit Traceur meiner Module von ES6 bis ES5 zu kompilieren, dass in die Zukunft denken, wenn Browser ES6 unterstützen, würde ich in der Lage sein, dieses transpilation Schritt überspringen .ES6 Modul Verkettung

Am Ende, weil ich nicht mehrere js Stücke beim Start herunterladen möchte, habe ich eine einzige Datei, die alle meine Module in ES5 konvertiert enthält, dank Traceur.

Aber um diese Wahl zu bestätigen, fragte ich mich, 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 entwickelt wurde und es würde einen zusätzlichen Verarbeitungsschritt erfordern, um sie richtig zusammenzuführen.

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

+0

möglich Duplikat [? Wie verketten ich ES6 Module] (http://stackoverflow.com/q/27488485/1048572), siehe auch [Importe in Modulen in babeljs verketten] (http : //stackoverflow.com/q/31015250/1048572) – Bergi

Antwort

4

Dies wird durch Bündelung gelöst, wie hier beschrieben: http://www.2ality.com/2013/11/es6-modules-browsers.html in Kapitel 3. Das ist also möglich und validiert Ihren Ansatz, obwohl ich keine Implementierung des entsprechenden Übersetzungsschritts im Web finden konnte, aber es sollte entstehen, wenn Menschen mit ES6-Modulen beginnen.

0

Die beste Lösung wird wahrscheinlich browserify sein, um Ihren gepackten 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 leichter 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.

Verwandte Themen