Edited at

async/awaitを使用して、"regeneratorRuntime is not defined "エラーが出た時の対処

webpack@4.28.2babel-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が使用可能になります。(詳しくはこちらを参照してください)