2016-05-16 24 views

risposta

72

I preset di palco di Babel equivalgono allo TC39 Process e ai diversi stati di ciascuna proposta per un potenziale cambio di lingua. Includono implementazioni e polyfill per tutte le modifiche proposte in quella fase.

Qualsiasi cosa attualmente in Stage-0 è Strawman, non ES6. È Javascript futuro e assolutamente non certo che lo farà mai in qualsiasi specifica ufficiale ECMAScript.

Si prega di non semplicemente impostato su stage-0 quindi funzionerà senza capire le conseguenze che questo avrà.

Il Preset Babel che contiene solo ES6 caratteristiche è preset-es2015

+3

Che dire di 'stage-1'? è sicuro da usare? Alcune funzionalità 'stage-1' possono essere deprecate e le API modificate in futuro? – notgiorgi

+4

@notgiorgi * Più sicuro di "stage-0" ma assolutamente non sicuro da modifiche o addirittura totale deprecazione (vedere [Proposta di costrutto di chiamata] (https://github.com/tc39/ecma262/blob/master/workingdocs/ callconstructor.md) che è stato ritirato dopo la Fase 1).Ma lo stesso si potrebbe dire di qualsiasi Stage diverso dallo Stage 4 (cioè Finito). – CodingIntrigue

+0

Si potrebbe voler sostituire 'preset-es2015' con [' babel-preset-node6'] (https://github.com/salakar/babel-preset-node6) in questi giorni, se si utilizza il Nodo 6 o superiore. –

-14

Ce l'ho. Voi ragazzi possono fare riferimento https://babeljs.io/docs/plugins/preset-stage-0/

In una parola breve, preset-stage-0 contiene tutte le funzionalità che preset-stage-1 ha, e preset-stage-1 contiene tutte le funzionalità che preset-stage-2 ha e così via ...

Lower cifra è più potente. Nel tuo progetto, se non ti preoccupi dei problemi, imposta stage-0 ...

+11

Ma capisci cosa 'stage-0', ecc in realtà è? Dal momento che dici "La cifra inferiore è più potente", io non credo. –

+2

In realtà, ho confuso lo 'stage' con' ES6', @RGraham ha sottolineato che 'Il Babel Preset che contiene solo le caratteristiche di ES6 è preset-es2015'. Grazie! – flyingzl

+0

Se vuoi avere problemi in seguito, usa lo stage-0! Alcune o tutte le funzionalità dello stage-0 potrebbero non essere incluse nelle specifiche ES. Quindi fai attenzione all'utilizzo delle funzionalità di stage-0. – devsnd

12

Le tappe rappresentano le tappe definite dal processo TC39 che funziona caratteristiche da idee folli, ma utili in norme accettate, come ES6. Il processo richiede un po 'di tempo, poiché ogni caso d'angolo deve essere discusso, pensato, testato, polyfilled, discusso di più, ecc. Cioè, è un corpo standard. L'obiettivo è che dire "ES6" avrà un significato completo e completo, come dire "ES5".

In pratica, i requisiti del tuo progetto possono variare dal rimanere al provato e fedele a giocare con caratteristiche linguistiche oh-so-convenienti, se nebulose. Probabilmente si desidera iniziare con questi collegamenti:

  • The TC39 Process Overview: Questo include un grafico nifty su ciò che significano le fasi e in che modo le caratteristiche di avanzamento da uno stadio all'altro. Di seguito è riportata una panoramica di TC39.

  • The Active Proposals: una rapida panoramica su quale fase sono presenti alcune proposte. Include inoltre collegamenti alle proposte Finished, Inactive e Stage 0. Oggi, aprile 2017, i campi della classe pubblica sono in fase 2, il che significa che è descritto con precisione e che i revisori sono stati assegnati, ma non è stato completamente rivisto.

  • The Babel Preset Package for Stage 3: la pagina del plug-in, con collegamenti a Git e NPM, per tutte le proposte Stage 3. Fondamentalmente, questo plug-in estrae la collezione di pacchetti che, in teoria, riempiono le proposte correnti in TC39 fase 3. In pratica, possono verificarsi errori. Inoltre, è possibile trovare il simile Allo stesso modo, collega alle pagine di plug-in per Stage 2 e sotto. Queste pagine collegheranno a pacchetti che includono sia proposte Stage 3 sia proposte meno stabili.

  • Babel Preset 'env': questa preimpostazione Babel supporta le proposte completate, selezionando i pacchetti corretti necessari per supportare queste funzionalità in un ambiente noto. Ad esempio, un eseguibile locale node richiede meno plug-in di un browser precedente. Si può pensare al plugin "stage-4" che supporta funzionalità future approvate.

In breve, è necessario gestire queste funzionalità di pre-release solo se le si utilizza. Se hai bisogno di usarli, scegli il più alto numero di stage che abbia ciò di cui hai bisogno. Se vuoi solo un'installazione giocattolo con caratteristiche folli da discutere attorno al refrigeratore d'acqua, vai avanti e prendi il palco 0.

+0

Il collegamento "Il pacchetto Babel Preset per Stage 3" non funziona. L'URL è il titolo. –

+0

Grazie @BarDev! Aggiustato. –

8

Come per lo più elaborato da altre risposte. Lo Stage 4 è il più Stabile e lo Stage 0, il più pericoloso. Ecco un piccolo breakdown ad alto livello per i 5 livelli delle risposte precedenti e la documentazione. Sto aggiungendo questo perché quando sono arrivato in questo mi aspettavo un alto livello di rottura verso il basso più di ciò che ogni fase è:


Fase 4: Finito

Pronto per l'inclusione in ECMAScript standard, ha superato il test e sarà parte della prossima revisione


fase 3: Candidato

comprende un testo completo specifiche e include i plugin che sono stati per lo più collaudati e forniti con feedback. La soluzione è completa e tutte le ulteriori modifiche sono basate sull'esperienza di implementazione.


Fase 2: Progetto

ulteriore supporto per i plugin completati il ​​più possibile. I requisiti per questi sono soddisfatti principalmente con solo modifiche incrementali in corso. Semantics and api dovrebbe essere completo. Molto probabilmente diventerà parte delle specifiche.


Fase 1: Proposta Un concetto che è stato scoperto e selezionato da esaminare in questa fase lo più poli-riempimenti e demo sono attesi.


Stadio 0: Strawman Questo nome mi ha fatto ridacchiare secondo il TC-39 che tipo di non ha alcun tipo di limite, ma dato il contesto è la categoria per i concetti che non sono stati selezionati da seguire o esaminare.

Ogni livello è compreso mentre 4 include 3 include 2 e così via ... Spero che questa somma aiuti qualcuno in futuro.

Problemi correlati