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中文網其他相關文章!