ホームページ >ウェブフロントエンド >jsチュートリアル >Babel 6 で非同期ジェネレーターを使用すると「regeneratorRuntime が定義されていません」というメッセージが表示されるのはなぜですか?また、どうすれば修正できますか?

Babel 6 で非同期ジェネレーターを使用すると「regeneratorRuntime が定義されていません」というメッセージが表示されるのはなぜですか?また、どうすれば修正できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-29 08:40:11296ブラウズ

Why is

Babel 6 に非同期ジェネレーターがありません

Babel 6 では、非同期を実装しようとすると、「regeneratorRuntime is not generated」というエラーが発生することがあります。発電機。これは、非同期関数の基礎を形成するリジェネレータ ランタイムを Babel と一緒に含める必要があるために発生します。

解決策: Babel-polyfill を含めます

これを解決するにはエラーが発生した場合は、非同期のサポートを提供する babel-polyfill をインストールする必要があります。関数。

npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader

更新された構成

babel-polyfill をインストールした後、package.json の「devDependency」セクションを新しいもので更新します。 package.

package.json

"devDependencies": {
  "babel-core": "^6.0.20",
  "babel-polyfill": "^6.0.16",
  "babel-preset-es2015": "^6.0.15",
  "babel-preset-stage-0": "^6.0.15"
}

Polyfill の組み込み

起動ファイルでは、両方の babel-コア/レジスタとbabel-polyfill.

スタートアップ ファイル

require("babel-core/register");
require("babel-polyfill");

Webpack ユーザーの場合は、エントリ配列の最初のエントリとして 'babel-polyfill' を配置することを忘れないでください。

webpack構成

module.exports = {
  entry: ['babel-polyfill', './test.js'],

  output: {
    filename: 'bundle.js'       
  },

  module: {
    loaders: [
      { test: /\.jsx?$/, loader: 'babel', }
    ]
  }
};

Mocha を使用したテストの場合は、次のコマンドを使用します:

mocha --compilers js:babel-core/register --require babel-polyfill

これらの調整により、Babel 6 環境で非同期ジェネレーターにアクセスできるようになります。これにより、async/await 構文をシームレスに作成して利用できるようになります。

以上がBabel 6 で非同期ジェネレーターを使用すると「regeneratorRuntime が定義されていません」というメッセージが表示されるのはなぜですか?また、どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。