Comment utiliser ES7 (ECMAScript 2016) dans nodejs? Comment puis-je l'utiliser dans production?
Et dans quelle version de noeud, je n'ai besoin d'aucun module pour le faire?
Toute aide est appréciée.
Remarque: Cette question portait explicitement sur ES2016 (ES7). Voir les mises à jour ci-dessous pour ES2017 (ES8).
L'ES7 n'avait que deux caractéristiques principales:
Array.prototype.includes
**
(l'opérateur d'exponentiation)Voir sur le réseau de développement Mozilla pour plus d'informations:
Selon node.green, ceux-ci sont disponibles dans Node puisque, respectivement:
Voir:
L'exponentiation est la dernière fonctionnalité ES7 ajoutée à Node). Par conséquent, si vous souhaitez utiliser toutes les fonctionnalités ES7 sans indicateur, vous devez disposer d'au moins Node 7.0. Si vous pouvez utiliser le --harmony
drapeau alors vous pouvez utiliser au moins Node 6.5.
La version 6.x étant LTS (support à long terme), vous voudrez peut-être la préférer à 7.x mais vous aurez besoin de l'indicateur pour utiliser les fonctionnalités de l'ES7.
Au moment d'écrire ces lignes, les versions actuelles de Node sont:
La version v8.0 LTS sera publiée sous peu - vous pouvez actuellement utiliser les versions nocturnes de Node 8.0.
Pour plus d'informations sur le calendrier de publication - voir:
Pour d'autres versions à télécharger - voir:
Répondant à la question des commentaires, async/wait est une fonctionnalité d'ES2017 (ES8), et non d'ES2016 (ES7), car elle portait sur cette question. Voir:
- Spécification: ECMAScript Latest Draft (ECMA-262) La définition de 'async function' dans cette spécification.
- Statut: brouillon
- Commentaire: Définition initiale dans ES2017.
Vous pouvez utiliser async/wait dans:
--harmony
flag Pour plus d'informations, voir:
Dans les endroits où vous n'avez pas de support natif pour async
et await
, vous pouvez utiliser Babel:
ou avec une syntaxe légèrement différente, une approche basée sur un générateur comme dans co
ou les routines Bluebird:
Voir ces réponses pour plus d'informations:
Ils incluent plus d'informations sur la compatibilité et les solutions de contournement possibles.
Il y a ce site http://node.green/ qui indique le niveau de compatibilité des différentes versions de NodeJS avec différentes versions des normes ES.
Vous devez utiliser le drapeau --harmony par exemple:
node --harmony server.js