webpack@4.28.2
、 babel-loader@8.0.4
環境下でasync/awaitを使用したところ"regeneratorRuntime is not defined"エラーがでました。その時の対処方法をメモします。
#対処方法
@babel/polyfill
をインストールして
npm install @babel/polyfill --save-dev
webpack.config.jsのentryを以下のように変更すればOKです。
webpack.config.js
entry: ['@babel/polyfill', './src/index.js']
#メモ
babel-loader 8 でasync/awaitを動作させるためには、@babel/polyfill
が必要です。
bable-loader 7 では @babel/polyfillの代わりにbabel-polyfillが必要になります。
#追記 (2019/07/30)
webpackを使用せず、bable-cli
+ .babelrc
でbabelを使用している場合、@babel/preset-env
のオプションでtargets
を指定することで対処できます。
.babelrc
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": true
}
}
]
]
}
これにより現在のnode.jsのバージョンに対応した形でコンパイルされるため、async/awaitが使用可能になります。(詳しくはこちらを参照してください)