Babel 6 での「regeneratorRuntime が定義されていません」エラー
Babel 6 を使用すると、「regeneratorRuntime が定義されていません」というエラーが発生する場合があります。特に async/await 構文を使用する場合にエラーが発生します。このエラーは、Babel のセットアップ時に必要な依存関係または構成が欠落していることを示します。
この問題を解決するには、babel-polyfill をインストールして構成する必要があります。このライブラリは、ネイティブにサポートされている機能をサポートしていない環境で、async/await などの最新の JavaScript 機能をサポートするために使用できる一連のポリフィルを提供します。
依存関係のインストール
まず、npm を使用して babel-polyfill とその他の必要な Babel 依存関係をインストールします。
npm i -D babel-core babel-polyfill babel-preset-es2015 babel-preset-stage-0 babel-loader
package.json を更新します。
package.json を更新しますファイルを作成し、babel-polyfill を devDependency に追加します:
"devDependencies": { "babel-core": "^6.0.20", "babel-polyfill": "^6.0.16", "babel-preset-es2015": "^6.0.15", "babel-preset-stage-0": "^6.0.15" }
Update .babelrc
.babelrc ファイルに変更を加える必要はありません。次のようになります:
{ "presets": [ "es2015", "stage-0" ] }
JavaScript ファイルを更新します
async/await 構文を使用していることを確認してください。例:
"use strict"; export default async function foo() { var s = await bar(); console.log(s); } function bar() { return "bar"; }
スタートアップ ファイル内
スタートアップ ファイル内で、Babel と babel-polyfill を必ず登録してください:
require("babel-core/register"); require("babel-polyfill");
Webpack を使用しているユーザーは、@Cemen の提案に従い、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
これらの手順に従って、「」を解決する機能regeneratorRuntime が定義されていません」というエラーが表示される場合は、async/await 構文を使用します。
以上がBabel 6 で「regeneratorRuntime が定義されていません」エラーが発生するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。