“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中文网其他相关文章!