我正在处理与Babel - regeneratorRuntime is not defined, when using transform-async-to-generator plugin类似的问题。我已经解决了,但是我不确定为什么。
简单来说,我想要实现的是能够在使用Webpack 4和Babel的React项目中使用生成器函数和async
/ await
。
我最初做出的但显然是错误的假设是,认为Babel的babel-preset-env
是一种快速修复程序,其中包括 JS的大部分常见现代功能(ES2015-ES2018 ?)
要使用传播语法,我必须添加transform-object-rest-spread
;要与yield
一起使用生成器函数,我必须添加transform-runtime
。
但是,当我想使用async
/ await
功能时,遇到了与尝试使用生成器函数时相同的错误:
ReferenceError:未定义regeneratorRuntime
我设法用something like this解决了这个问题,所以我的.babelrc
文件看起来像:
{
"presets": [
// "env",
"react",
"stage-0"
],
"plugins": [
"transform-object-rest-spread",
"transform-async-to-generator",
[
"transform-runtime",{
"polyfill": false,
"regenerator": true
}]
]
}
请注意,我已注释掉预设的env
部分。注释掉之后,我的问题似乎已解决,并且我仍然可以使用所有其他功能。
transform-async-to-generator
与Babel / Webpack一起使用async
/ await
;还是有更好的方法(例如,更简单的方法)?