async/await 能讓開發者享受異步操作的快感,解決回調地獄的問題。然而,編譯器對於 async/await 的編譯有時候卻不和我們想象中的一樣。透過安裝正確插件,或改回 Promise 版本,我們可以解決這個問題。
之前在Gatsbyjs async/await 更新報錯解決方法 就已經提及過,使用 babel-plugin-transform-runtime 就好了。
npm install --save-dev babel-plugin-transform-runtime
然後在 .babelrc
裡面填寫:
{
"plugins": ["transform-runtime"]
}
或加入自定義選項:
{
"plugins": [
["transform-runtime", {
"helpers": false,
"polyfill": false,
"regenerator": true,
"moduleName": "babel-runtime"
}]
]
}
因為 Babel 會不斷更新,所以具體配置請到官網查閱,或點擊下面的鏈接。
其實你也可以使用babel-polyfill
,不過它會包含 regenerator runtime
及 core-js
,打包的體積會變得很大。