2015-10-12 13 views
7

Ho citato su Twitter che stavo passando da es6-shim a babel. Qualcun altro menzionato:Babele ha bisogno di es6-shim?

gli spessori sono ancora necessari anche con babele. risolvono i builtin rotti, quelli che usa l'output di babel.

Quindi:

  1. Fa babel bisogno ES6-shim o simili?

  2. Se lo fa, perché non babel require queste cose come una dipendenza?

Risposte con riferimenti preferiti su 'sì/no' senza argomenti di supporto!

risposta

11

Babel, al suo interno, fa una sola cosa: converte la sintassi da una forma all'altra.

Alcune delle trasformazioni della sintassi di Babel introducono dipendenze dalla funzionalità della libreria ES6. Essa non si preoccupa di come tale funzionalità arrivato perché:

  • Il sistema potrebbe già fornire
  • L'utente potrebbe solo voglia di caricare parti specifiche di una libreria
  • Ci sono molte polyfills e la l'utente potrebbe avere uno specifico che desidera utilizzare.

È compito degli sviluppatori garantire che il codice transpiled sia in esecuzione in un ambiente in cui tutte le funzioni di cui necessita effettivamente esistano.

  • Babel dovrebbe funzionare bene con es6-shim se si desidera continuare a utilizzarlo.
  • Babel espone anche babel/polyfill come un modo semplice morto per caricare un polyfill, che carica core-js, un'altra polyfill come es6-shim. Basta:

    require('babel/polyfill');

4

Alcune trasformazioni Babel si basano su oggetti o metodi che potrebbero non essere disponibili nel proprio ambiente runtime e che quindi vorrebbe polyfill per quegli ambienti. Queste dipendenze sono documentate allo https://babeljs.io/docs/usage/caveats/.

Babel viene fornito con un polyfill che soddisfa tutti i requisiti a cui è possibile accedere se lo si desidera e non tenta di inserire automaticamente i polyfill per i motivi spiegati da @loganfsmyth.

Problemi correlati