我和巴贝尔有一个奇怪的问题.当我在我的一个类中使用一个简单的生成器函数时,babel会创建一个包含调用的函数regeneratorRuntime.
var marked3$0 = [getQueryDummy].map(regeneratorRuntime.mark);
function getQueryDummy(start, end, step) {
return regeneratorRuntime.wrap(function getQueryDummy$(context$4$0) {
Run Code Online (Sandbox Code Playgroud)
不好的是,它不会创建这个函数,当我忘记手动将编译的生成器替换为原始生成器时(这种情况一直发生),它总是会导致错误
我知道我可以补充一下
require('babel/polyfill')
Run Code Online (Sandbox Code Playgroud)
到我的档案.polyfill具有该regeneratorRuntime功能.这就是它变得非常奇怪的地方.即使我将require(...)放在文件的最顶部,babel会regeneratorRuntime在包含polyfill 之前调用,这又会导致相同的错误.
为了完整起见,这是发电机
function *getQueryDummy(start, end, step) {
while (start < end) {
yield [start, '@dummy'];
start += step;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用babel版本5.8.23.
有没有办法告诉babel根本不接触generators?node本地支持它们,我不需要编译它...
你可以黑名单 regenerator.如果你正在建设transform:
babel.transform(code, {blacklist:['regenerator']});
Run Code Online (Sandbox Code Playgroud)
或者从命令行:
--blacklist regenerator
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |