首頁 > web前端 > js教程 > 為什麼我在 Babel 6 中收到「regeneratorRuntime 未定義」錯誤,如何修復它?

為什麼我在 Babel 6 中收到「regeneratorRuntime 未定義」錯誤,如何修復它?

DDD
發布: 2024-12-08 21:47:14
原創
579 人瀏覽過

Why am I getting a

Babel 6 中的"regeneratorRuntime is not defined" 錯誤

使用Babel 6. defined" 錯誤,特別是在使用async/await語法時。這個錯誤表示您在設定 Babel 時缺少必需的依賴項或配置。

要解決此問題,您需要安裝並設定 babel-polyfill。該程式庫提供了一組 polyfill,可用於在不支援原生支援的功能的環境中支援現代 JavaScript 特性,例如 async/await。

安裝依賴項

首先,使用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 加到 devDependencies 中:

"devDependencies": {
  "babel-core": "^6.0.20",
  "babel-polyfill": "^6.0.16",
  "babel-preset-es2015": "^6.0.15",
  "babel-preset-stage-0": "^6.0.15"
}
登入後複製

更新 .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 設定檔中的entry 陣列的第一個值:

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 is not defined" 錯誤並使用async/await 語法。

以上是為什麼我在 Babel 6 中收到「regeneratorRuntime 未定義」錯誤,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板