Quelle est la différence entre babel-preset-stage-0, babel-preset-stage-1 etc.?

Ma question est: quelle est la différence entre babel-preset-stage-0 , babel-preset-stage-1 , babel-preset-stage-2 et babel-preset-stage-3 , et quel est le meilleur choix lorsque nous développons avec ES6 ?

Les parameters prédéfinis de Babel correspondent au processus TC39 et aux différents états de chaque proposition pour un changement de langue potentiel. Ils incluent des implémentations et des polyfills pour toutes les modifications proposées à ce stade.

Tout ce qui se trouve actuellement à l’ Stage-0 est Strawman, pas ES6. C’est le futur Javascript et absolument pas sûr qu’il fera jamais dans une spécification officielle ECMAScript.

S’il vous plaît, ne vous contentez pas de mettre à l’ stage-0 pour que cela fonctionne sans comprendre les conséquences que cela aura.

Le Preset Babel qui ne contient que des fonctionnalités ES6 est preset-es2015

Comme principalement élaboré par d’autres réponses. Le stade 4 est le plus stable et le stade 0, le plus dangereux. Voici un aperçu des cinq étapes à partir des réponses précédentes et de la documentation. J’ajoute ceci parce que quand je suis arrivé à ce sujet, je m’attendais à une décomposition de haut niveau de chaque étape:


Étape 4: Terminé

Prêt à être intégré à ECMAScript Standard, a réussi les tests et fera partie de la prochaine révision


Étape 3: Candidat

Inclut un texte de spécification complet et inclut des plugins qui ont été testés pour la plupart et fournis avec des commentaires. La solution est complète et tous les changements ultérieurs sont basés sur l’expérience de l’implémentation.


Étape 2: brouillon

Une prise en charge supplémentaire des plug-ins est effectuée autant que possible. Les exigences pour ces derniers sont principalement remplies avec seulement des modifications incrémentielles sur le chemin. La sémantique et l’api devraient être complètes. Il fera très probablement partie de la spécification.


Etape 1: Proposition Un concept qui a été découvert et sélectionné pour être examiné à cette phase, principalement des poly-remplissages et des démos.


Etape 0: Strawman Ce nom m’a fait rire selon le TC-39, il n’a pas de lien, mais dans le contexte, c’est la catégorie des concepts qui n’ont pas été sélectionnés pour être suivis ou examinés.

Chaque niveau est inclusif alors que 4 comprend 3 comprend 2 et ainsi de suite … J’espère que cette sommation aidera quelqu’un dans le futur.

Les étapes représentent les étapes définies par le processus TC39 qui fonctionnent des fonctionnalités des idées folles mais utiles dans des normes acceptées, telles que ES6. Le processus prend un certain temps, car chaque cas doit être discuté, réfléchi, testé, polyfiltré, discuté davantage, etc. C’est-à-dire qu’il s’agit d’un organisme de normalisation. Le but est que dire “ES6” aura un sens complet, tout comme le dit “ES5”.

En pratique, les exigences de votre projet peuvent aller de restr fidèle à l’essentiel à jouer avec des fonctionnalités linguistiques si pratiques, si nébuleuses. Vous voulez probablement commencer par ces liens:

  • Présentation du processus TC39 : Cela inclut un tableau astucieux indiquant la signification des étapes et la progression des fonctionnalités d’une étape à l’autre. Ci-dessous se trouve un aperçu de TC39.

  • Les propositions actives : aperçu rapide de la phase de certaines propositions. Il comprend également des liens vers les propositions finies, inactives et les étapes 0. Aujourd’hui, en avril 2017, les champs de classe publics sont à l’étape 2, ce qui signifie qu’ils sont décrits avec précision et que les réviseurs ont été atsortingbués, mais qu’ils ne sont pas entièrement revus.

  • Le Paquet de Presets Babel pour la 3ème étape : la page du plug-in, avec des liens vers Git et NPM, pour toutes les propositions de la phase 3. Fondamentalement, ce plug-in intègre la collection de paquets qui, en théorie, remplissent les propositions actuelles de l’étape 3 du TC39. En pratique, des bogues peuvent survenir. En outre, vous pouvez trouver la même chose. De même, il est lié aux pages de plug-in pour les étapes 2 et suivantes. Ces pages renverront à des packages comprenant à la fois des propositions d’étape 3 et des propositions moins stables.

  • Babel Preset ‘env’ : Ce préréglage Babel prend en charge les propositions terminées, en sélectionnant les packages appropriés pour prendre en charge ces fonctionnalités dans un environnement connu. Par exemple, un exécutable de node local nécessite moins de plug-ins qu’un navigateur plus ancien. On peut penser au plug-in ‘stage-4’ qui prend en charge les futures fonctionnalités approuvées.

En résumé, il vous suffit de gérer ces fonctionnalités préliminaires si vous les utilisez. Si vous avez besoin de les utiliser, choisissez le plus grand nombre d’étapes correspondant à vos besoins. Si vous voulez juste une installation de jouet avec des caractéristiques folles pour discuter autour du refroidisseur d’eau, allez-y et prenez la scène 0.

Je l’ai Vous pouvez vous référer https://babeljs.io/docs/plugins/preset-stage-0/

En un mot, preset-stage-0 contient toutes les fonctionnalités de preset-stage-1 et preset-stage-1 contient toutes les fonctionnalités de preset-stage-2 , etc.

Le chiffre inférieur est plus puissant. Dans votre projet, si vous ne vous souciez pas des problèmes, placez le stage-0