web-dev-qa-db-ja.com

nodejsでES7を使用するにはどうすればよいですか?

nodejsES7(ECMAScript 2016)を使用するにはどうすればよいですか? productionでどのように使用できますか?

また、どのバージョンのノードで、それを行うためにモジュールを使用する必要はありませんか?

どんな助けも大歓迎です。

21
Majid Parvin

注:この質問は、ES2016(ES7)に関するものでした。 ES2017(ES8)の以下の更新を参照してください。

ES7には2つの主な機能しかありませんでした。

  1. Array.prototype.includes
  2. **(べき乗演算子)

詳細については、Mozilla Development Networkを参照してください。

Node.greenによると、これらはそれぞれNodeで利用可能です:

  • ハーモニーフラグ付き5.0およびフラグなし6.0(Array.prototype.includes)
  • ハーモニーフラグ付き6.5およびフラグなし(指数)の7.0

見る:

累乗はNodeに追加された最後のES7機能です。したがって、フラグなしですべてのES7機能を使用するには、少なくともNode 7.0。 --harmonyフラグを使用できる場合は、少なくともNode 6.5。

6.xバージョンはLTS(Long Term Support)であるため、7.xよりも優先したい場合がありますが、ES7機能を使用するにはフラグが必要です。

これを書いている時点で、Nodeの現在のバージョンは:

  • v6.10.3 LTS(ほとんどのユーザーに推奨)
  • v7.10.0現在(最新機能)

V8.0 LTSはまもなくリリースされます-現在、Node 8.0。のナイトリービルドを使用できます。

リリーススケジュールの詳細については、以下を参照してください。

ダウンロードする他のバージョンについては、以下を参照してください。

ES2017の更新

コメントからの質問に答えると、async/awaitはES2016(ES7)ではなくES2017(ES8)の機能です。見る:

  • 仕様:ECMAScript Latest Draft(ECMA-262)その仕様の「非同期機能」の定義。
  • ステータス:下書き
  • コメント:ES2017の初期定義。

ノードでの非同期/待機

以下でasync/awaitを使用できます。

  • --harmonyフラグ付きのノード7.0
  • フラグなしのノード7.6

詳細については、以下を参照してください。

asyncawaitのネイティブサポートがない場所では、Babelを使用できます。

または、わずかに異なる構文で、coやBluebirdコルーチンのようなジェネレーターベースのアプローチ:

詳細については、これらの回答を参照してください。

互換性と可能な回避策に関する詳細情報が含まれています。

24
rsp

このサイトがあります http://node.green/ NodeJSの異なるバージョンとES標準の異なるバージョンとの互換性のレベルを示しています。

7
Adrian Makowski

たとえば、-harmonyフラグを使用する必要があります。

node --harmony server.js
3
Sergaros