web-dev-qa-db-fra.com

Comment utiliser ES7 dans nodejs?

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.

21
Majid Parvin

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:

  1. Array.prototype.includes
  2. ** (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:

  • 5.0 avec indicateur d'harmonie et 6.0 sans indicateur (Array.prototype.includes)
  • 6.5 avec drapeau d'harmonie et 7.0 sans drapeau (exponentiation)

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:

  • v6.10.3 LTS (recommandé pour la plupart des utilisateurs)
  • v7.10.0 Current (Dernières fonctionnalités)

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:

Mise à jour pour ES2017

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.

async/wait dans le nœud

Vous pouvez utiliser async/wait dans:

  • Noeud 7.0 avec le --harmony flag
  • Noeud 7.6 sans indicateur

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.

24
rsp

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.

7
Adrian Makowski

Vous devez utiliser le drapeau --harmony par exemple:

node --harmony server.js
3
Sergaros