簡體   English   中英

在節點6中使用帶有Babel的async / await

[英]Using async/await in Node 6 with Babel

我正在嘗試為Node v6.9.2配置Babel。 我想使用async / await結構。

因為我是Babel和所有Node基礎架構的新手,所以我很困惑如何正確配置它:

  • 我應該使用什么預設? Node已經實現了大部分ES6功能。 因此,出於性能原因,我不希望Babel轉換Node 6.9.x已經支持的功能(箭頭功能,新導入機制等)。

  • 我應該包含哪些插件,以便我可以使用async / await? 在那里我也很困惑,因為經過一些研究后我發現了幾個插件: syntax-async-functionstransform-async-to-generator等等。

.babelrc會有所幫助。

謝謝

我應該使用什么預設?

您不需要使用任何預設。 預設只是插件的集合,如果您想要轉換一組功能(例如所有帶有preset-es2015 ),它可以更容易使用。 但是,當您只想轉換這些功能時,您只需要包含相應的插件。

我應該包含哪些插件,以便我可以使用async / await?

因為節點6支持生成器,所以您可以將transform-async-to-generator與以下.babelrc

{
  "plugins": ["transform-async-to-generator"]
}

當然,如果您需要轉換更多不受支持的功能,則需要添加插件。

另類babel-preset-env

babel-preset-env自動確定指定環境所需的插件。 這不包括任何不必要的插件。 要指定當前的節點版本,您將使用此.babelrc

{
  "presets": [
    ["env", {
      "targets": {
        "node": "current"
      }
    }]
  ]
}

簡短的回答

對節點6.x使用Babel預設:

答案很長

要查看給定節點版本支持的ES功能,請參閱:

有關async / await支持,請參閱:

如果您使用Node v7.x(當前版本),那么您可以使用--harmony標志並使用async / await本機而不進行轉換。

Node v8.x(可用作夜間版本)甚至不需要--harmony標志。

但請注意Node不支持import / export - 要知道為什么看到:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM