Help us understand the problem. What is going on with this article?

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

nbstsh
JavaScript勉強中
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした