2015-02-23 7 views
57

Ich bin immer noch neu bei ES6- und Modul-Loadern und bin derzeit dabei, ein browserify-Setup mit ES6 zu kombinieren. Ich frage mich, ob ich browserify/requirejs noch benötigen würde, wenn ich ES6-Module verwende. Scheint wie beide erlauben Sie, Module zu definieren und sie zu exportieren? Was ist der Unterschied zwischen browserify/requirejs Modulen und ES6 Modulen?Was ist der Unterschied zwischen browserify/requirejs-Modulen und ES6-Modulen?

+7

[Addy] (http://addyosmani.com/writing-modular-js/) gibt eine gute Aufteilung imo. – Andy

+7

browserify ist kein Modulsystem, es ist ein Modulbündler. –

Antwort

67

Nachdem ich eine Weile herumgespielt hatte, verstand ich die Dinge besser, auch dank @Andy für die blog by Addy Osmani.

Es gibt verschiedene Modulsysteme: AMD (RequireJS), CommonJS (Knoten) und die neue ES6-Modul-Syntax (und natürlich das alte ES5 Global-System).

Wenn Sie jedoch diese in Ihrem Browser verwenden möchten, müssen Sie diese Module noch mit einigen Modul Loader-Bibliothek laden und verdrahten, weil Browser dies immer noch nicht unterstützen. Dazu können Sie einen Modullader wie RequireJS, Browserify, SystemJS oder es6-module-loader verwenden.

SystemJS ist mein persönlicher Favorit, weil es erlaubt, jedes Modulsystem (AMD, CommonJS, ES6) zu laden und sogar in 1 App austauschbar zu verwenden.

Update: In der Zwischenzeit ist Webpack verfügbar geworden und sollte auch als Modullader betrachtet werden.

+3

obwohl ich RequireJS bevorzuge, vergessen Sie nicht über Webpack. Wie SystemJS ist auch Webpack unabhängig davon, ob AMD, CommonJS oder ES6 als Modulsystem verwendet werden soll. –

+1

[Schließen und Jspm Code generieren, der schneller als Webpack ist] (https://github.com/samccone/The-Cost-of-Transiling-es2015-in-2016#the-Cost-of-Transiling-es2015-in-2016). –

Verwandte Themen