2015-02-23 8 views
57

Sono ancora nuovo su ES6 e sui caricatori di moduli e attualmente sto cercando di combinare una configurazione browserify con ES6. Mi stavo chiedendo se avrei ancora bisogno di browserify/requirejs se sto usando i moduli ES6. Sembra che entrambi ti permettano di definire i moduli ed esportarli? Qual è la differenza tra i moduli browserify/requirejs e i moduli ES6?Qual è la differenza tra i moduli browserify/requirejs e i moduli ES6

+7

[Addy] (http://addyosmani.com/writing-modular-js/) offre una buona ripartizione. – Andy

+7

browserify non è un sistema di moduli, è un modulo di raggruppamento. –

risposta

67

Dopo aver giocato per un po 'ho avuto una migliore comprensione delle cose, anche grazie a @Andy per il blog by Addy Osmani.

Ci sono diversi sistemi di moduli : AMD (RequireJS), CommonJS (Nodo) e la nuova sintassi del modulo ES6 (e ovviamente il vecchio sistema ES5 Global).

Tuttavia, se si desidera utilizzare quelli nel browser, è comunque necessario caricare e collegare questi moduli con qualche libreria di caricatori di moduli perché i browser ancora non lo supportano. Per questo è possibile utilizzare un caricatore di moduli come RequireJS, Browserify, SystemJS o es6-module-loader.

SystemJS è il mio preferito perché consente di caricare qualsiasi sistema di moduli (AMD, CommonJS, ES6) e persino di usarli in modo intercambiabile in 1 app.

Aggiornamento: Nel frattempo è diventato disponibile Webpack e deve essere considerato anche come modulo di caricamento.

+3

anche se preferisco RequireJS, non dimenticarti di Webpack. Come SystemJS, anche Webpack è agnostico sull'utilizzo di AMD, CommonJS o ES6 come sistema di moduli. –

+1

[chiusura e jspm generano codice più veloce di Webpack] (https://github.com/samccone/The-cost-of-transpiling-es2015-in-2016#the-cost-of-transpiling-es2015-in-2016). –

Problemi correlati