Babel 5.0: il transpiler JavaScript che abilita ES6+ ovunque

Babel 5.0 (marzo 2015) di Sebastian McKenzie: transpiler JavaScript (ex 6to5) che permette di scrivere ES2015+ e targeting browser e Node.js vecchi. Plugin architecture, source maps, polyfill automatici.

Open SourceWebR&D BabelSebastian McKenzieTranspilerJavaScriptES6FrontendOpen Source

Il gap ES5 → ES6

Lo standard ES2015 (ES6) è in finalizzazione nel 2015 con novità sostanziali — let/const, arrow functions, classes, template literals, destructuring, modules, promise, async/await (ES2017). I browser e Node.js di produzione supportano solo ES5. Agli sviluppatori serve un transpiler che converta ES6+ in ES5 compatibile.

6to5, avviato nel 2014 da Sebastian McKenzie (allora diciannovenne australiano), risolve questo problema. A febbraio 2015 il progetto viene rinominato Babel per riflettere l’ambizione più ampia (non solo ES6, ma traduttore universale JavaScript). La versione 5.0 è del 31 marzo 2015.

Licenza MIT.

Architettura plugin

Babel è strutturato come pipeline:

  1. Parser (basato su Acorn) — AST del codice input
  2. Trasformazioni — plugin che modificano l’AST
  3. Generator — AST → codice JS target

Ogni plugin è responsabile di una trasformazione specifica (ES6 arrow functions → ES5 function, ES6 classes → ES5 prototype-based, ecc.). I preset (preset-env, preset-react, preset-typescript) sono collezioni di plugin.

Features principali

  • Transpilation ES2015+, ES2016+, ES2017+, stage proposals
  • Source maps per debug del sorgente originale
  • JSX transform (per React)
  • Flow type stripping (tipizzazione statica pre-TypeScript)
  • TypeScript transform (via @babel/preset-typescript)
  • Polyfills via @babel/polyfill / core-js

Impatto atteso

Babel sta abilitando la transizione verso JavaScript moderno nei browser: il pairing con Webpack (Webpack orchestra, Babel traspila) è destinato a diventare lo stack standard frontend nei prossimi anni.

Nel contesto italiano

Babel sta entrando rapidamente nei team frontend italiani: ogni nuovo progetto React — e presto Vue, Angular — lo adotta come traspilatore di default.


Riferimenti: Babel 5.0 (31 marzo 2015). Sebastian McKenzie. Licenza MIT. Parser Acorn. Plugin ecosystem ampio.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi