Utiliser async / await dans le nœud 6 avec Babel
Je suis en train de configurer Babel pour le Nœud v6.9.2. Je veux utiliser async
/await
constructions.
Parce que je suis nouveau sur Babel et tout Nœud de l'infrastructure, j'ai confondu la façon de le configurer correctement:
- Ce preset dois-je utiliser? Le nœud est déjà mis en œuvre la plupart de l'ES6 fonctionnalités. Donc je ne veux pas de Babel à transpile fonctions déjà prises en charge par le Nœud 6.9.x (flèche fonctions, le nouveau mécanisme d'importation, etc) pour des raisons de performances.
- Quels sont les plugins dois-je inclure donc je peux l'utiliser async/await? Là, j'ai aussi confus, car après quelques recherches j'ai trouvé plusieurs plugins:
syntax-async-functions
transform-async-to-generator
et un peu plus.
Exemple de .babelrc
aidera.
Grâce
source d'informationauteur MyTitle
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'utiliser un preset. Les Presets sont simplement une collection de plugins qui le rend plus facile à utiliser si vous voulez transpile un ensemble de caractéristiques (par exemple tous les ES2015 avec
preset-es2015
). Mais quand vous voulez transpile seulement une sélection de ces fonctionnalités, vous devez inclure seulement le correspondant plugins.Car Nœud 6 prend en charge les générateurs, vous pouvez utiliser
transform-async-to-generator
avec le suivant.babelrc
:Et bien sûr, vous devrez ajouter des plugins si vous avez besoin de transpile plus de fonctionnalités non prises en charge.
Alternative
babel-preset-env
babel-preset-env détermine automatiquement les plugins dont vous avez besoin pour l'environnement. Cela n'inclut pas tous les plugins qui ne sont pas nécessaires. Pour spécifier votre Nœud actuel de la version que vous utilisez ce
.babelrc
:Réponse courte
Utilisation Babel preset pour le Nœud 6.x:
Réponse longue
Pour voir ce qui ES fonctionnalité est prise en charge dans un Nœud donné la version, voir:
Pour
async
/await
soutenir en particulier, voir:Si vous utilisez le Nœud de v7.x (la version actuelle), alors vous pouvez utiliser le
--harmony
drapeau et l'utilisationasync
/await
nativement sans transpilation.Nœud v8.x (disponible en nightly builds) n'a même pas besoin de la
--harmony
drapeau.Mais note que le Nœud ne prend pas en charge
import
/export
- à savoir pourquoi voir: