首页 >web前端 >js教程 >在 Babel 6 中使用 Async/Await 时,为什么我会收到'regeneratorRuntime is not Defined”?

在 Babel 6 中使用 Async/Await 时,为什么我会收到'regeneratorRuntime is not Defined”?

Susan Sarandon
Susan Sarandon原创
2024-12-08 17:38:12195浏览

Why Am I Getting

“Babel 6 regeneratorRuntime is not Defined”解释

在 Babel 6 中实现 async/await 时,出现“regeneratorRuntime is not Defined”错误常出现。要解决此问题,必须另外安装并包含 babel-polyfill。

安装 Babel 依赖项

要使用 async/await,请安装这些依赖项:

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

更新中package.json

将以下内容添加到“devDependency”:

"babel-polyfill": "^6.0.16"

维护 .babelrc

保持设置不变:

{
  "presets": [ "es2015", "stage-0" ]
}

设置Async/await**

在代码中启用 async/await:

"use strict";

export default async function foo() {
  var s = await bar();
  console.log(s);
}

function bar() {
  return "bar";
}

加载所需的包

在启动文件中,包括:

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

Webpack配置

如果使用 webpack,请确保 babel-polyfill 是第一个条目:

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

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

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

使用 Babel 进行测试

使用以下命令运行测试Babel 使用:

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

以上是在 Babel 6 中使用 Async/Await 时,为什么我会收到'regeneratorRuntime is not Defined”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn