web-dev-qa-db-fra.com

Quelle est la différence entre babel-preset-es2015 et babel-preset-env?

J'essaie actuellement de comprendre la configuration de babel, mais je suis confus par babel-preset-**, il existe de nombreux préréglages dans babel, comme env, es2015, react et d'autres, je comprends que babel-preset-es2015 est nécessaire pour transpiler le code es2015 vers le code js précédent afin qu'il puisse être compris par la plupart des navigateurs/plus anciens, qu'en est-il de babel-preset-env?

Quelles sont les différences entre ces préréglages? Peut-on utiliser env sans utiliser es2015 ou vice versa? et quels sont les cas où nous avons besoin que ces deux préréglages soient présents sur notre système de construction de projet?

Je vous remercie.

41
xcode

Le babel-preset-es20XX (15, 16, 17) les préréglages incluent les transformations nécessaires pour convertir les fonctionnalités ajoutées au cours de cette année spécifique en un code compatible avec la version précédente.

babel-preset-env inclut des transformations pour toutes les fonctionnalités qui ont atterri dans la spécification, mais active uniquement celles nécessaires pour faire fonctionner les fonctionnalités en fonction de l'ensemble des environnements que vous lui avez fournis. Si vous ne passez aucune option à env cela fonctionne essentiellement comme es2015, es2016, es2017 tous ensemble.

babel-preset-react est l'ensemble des transformations nécessaires pour convertir les extensions de syntaxe liées à React/Facebook comme Flowtype et JSX de React.

48
loganfsmyth