Node v6.9.2。async
/await
コンストラクトを使用したいためにBabelを設定しようとしています。
私はBabelが初めてであり、すべてのNodeインフラストラクチャであるため、適切に構成する方法を混乱させました。
どのプリセットを使用する必要がありますか? NodeはES6のほとんどの機能を既に実装しています。だから、Babelが既にサポートしている機能をNode 6.9.x(矢印関数、新しいインポートメカニズムなど)パフォーマンス上の理由から。
Async/awaitを使用するには、どのプラグインを含める必要がありますか?そこに私も混乱しました。いくつかの調査の後、いくつかのプラグインを見つけたからです:syntax-async-functions
、transform-async-to-generator
など。
の例 .babelrc
役立ちます。
ありがとう
どのプリセットを使用する必要がありますか?
プリセットを使用する必要はありません。プリセットはプラグインの単なるコレクションであり、一連の機能を変換したい場合に使いやすくなります(たとえば、すべてのES2015でpreset-es2015
)。ただし、これらの機能の一部のみをトランスパイルする場合は、対応するプラグインのみを含めます。
Async/awaitを使用するには、どのプラグインを含める必要がありますか?
Node 6はジェネレーターをサポートしているため、transform-async-to-generator
次の.babelrc
:
{
"plugins": ["transform-async-to-generator"]
}
もちろん、サポートされていない機能をさらに追加する必要がある場合は、プラグインを追加する必要があります。
babel-preset-env
babel-preset-env は、指定された環境に必要なプラグインを自動的に決定します。これには、必要のないプラグインは含まれません。現在のNodeバージョンを指定するには、この.babelrc
:
{
"presets": [
["env", {
"targets": {
"node": "current"
}
}]
]
}
Node 6.x:にBabelプリセットを使用します:
特定のNodeバージョンでサポートされるES機能を確認するには、以下を参照してください。
特にasync
/await
サポートについては、以下を参照してください。
Node v7.x(現在のバージョン))を使用する場合、--harmony
フラグを使用し、トランスピレーションなしでasync
/await
をネイティブに使用できます。 。
Node v8.x(ナイトリービルドとして利用可能)は、そのために--harmony
フラグさえ必要としません。
ただし、Nodeはimport
/export
をサポートしていません-知っているwhy 見る: