Babel est un compilateur JavaScript-to-JavaScript, parfois appelé un transpondeur qui convertit le code écrit avec un ensemble de fonctionnalités (par exemple, celles de l'ES2015 et des versions ultérieures) en code qui peut être exécuté dans un environnement JavaScript qui ne prend pas en charge ces fonctionnalités. (Il en existe d'autres, Babel n'en est qu'un assez populaire).
La décision d'utiliser Babel pour transposer votre code ES2015+ vers ES5 vous appartient entièrement, et dépend des environnements cibles que vous souhaitez prendre en charge. Si vous souhaitez prendre en charge toutes les versions d'IE (y compris IE11), par exemple, vous devrez transpiler. Si vous souhaitez uniquement prendre en charge les versions les plus récentes de Chrome, Firefox et Edge, ou d'autres environnements dans lesquels vous pouvez compter sur la présence des fonctionnalités que vous utilisez (comme des installations Node.js à jour), vous n'avez pas besoin de le faire.
Kangax dispose d'un ensemble de tableaux pratiques pour savoir quels moteurs JavaScript et/ou navigateurs prennent en charge les fonctionnalités les plus modernes de JavaScript (pas seulement ES2015, mais ES2016, ES2017, etc.).
L'utilité de Babel (et des outils similaires) va au-delà de la simple utilisation des fonctionnalités les plus récemment standardisées, et ce de deux manières au moins :
-
Vous pouvez utiliser Babel (et d'autres outils similaires) pour tirer parti de fonctionnalités qui seront probablement bientôt normalisées, même si elles ne sont pas encore bien supportées. Par exemple, les bases des champs publics de classe n'ont pas changé depuis longtemps, mais la proposition dans laquelle ils se trouvent est toujours (au moment où nous écrivons ces lignes, en juin 2018) au stade 3 (et a fait des allers-retours entre le stade 2 et le stade 3 à plusieurs reprises) pour des raisons sans rapport avec les champs de classe publics, et même les navigateurs de pointe comme Chrome, Firefox et Edge ne prennent pas encore en charge les champs de classe publics. Mais il est courant, de nos jours, d'utiliser des champs de classe via un transpilateur.
-
Vous pouvez écrire votre propre transformation Babel (ou similaire) pour ajouter vos propres fonctionnalités à JavaScript pour votre propre projet (ou utiliser celles que d'autres ont écrites), même si ces fonctionnalités ne feront jamais partie de JavaScript ou ne seront pas utilisées en dehors de votre projet.
2 votes
En fait, le
babel
est un transpilateur et un transpilateur devra toujours utiliser des fonctionnalités de pointe car tous les fournisseurs de navigateurs ne mettent pas en œuvre toutes les fonctionnalités du langage simultanément.2 votes
Babel rend votre code brillant compréhensible par des navigateurs obsolètes. Continuez à écrire de nouvelles syntaxes et faites-les passer par Babel. Vous n'avez pas besoin de comprendre ou d'apprendre Babel. Il vous suffit de faire passer votre code par Babel.
2 votes
Haha, cette situation quand l'Alpha commente les Alpha_Bords. Mais en fait, vous n'avez pas besoin de Babel jusqu'à ce que vous remarquiez que quelque chose ne fonctionne pas dans certains navigateurs. Jusqu'à ce moment-là, je l'ignore complètement.
1 votes
@smnbbrv, je ne l'ai pas vu venir :-)
2 votes
Merci beaucoup. Pour être honnête, je suis vraiment flatté par le fonctionnement de ce site Web et cela me facilite la tâche car je suis un débutant complet en matière de développement Web. Mais je ne vais pas en abuser et je vais continuer à coder jusqu'à ce que mes doigts saignent. haha Merci.
0 votes
Vous êtes les bienvenus. Gardez vos questions spécifiques et utiles pour les futurs utilisateurs et vous vous intégrerez parfaitement. Bon codage !
0 votes
Juste une remarque : en anglais, on ne met une majuscule qu'en début de phrase ou si le mot est un nom propre ou le pronom " I " (mais pas les autres comme " he "). Lorsque vous mettez une majuscule à d'autres mots, il est difficile de lire votre texte. POUR INFO.
1 votes
Ok, merci pour le conseil. Je le garderai en tête la prochaine fois.
0 votes
caniuse.com/#search=ES6
0 votes
Duplication possible de certains Babel est-il encore nécessaire ?