我和巴贝尔有一个奇怪的问题。当我在我的一个类中使用一个简单的生成器函数时,babel会在其中创建一个函数,其中包含对regeneratorRuntime
的调用。
var marked3$0 = [getQueryDummy].map(regeneratorRuntime.mark);
function getQueryDummy(start, end, step) {
return regeneratorRuntime.wrap(function getQueryDummy$(context$4$0) {
不好的是,它没有创建这个函数,当我忘记手动将编译的生成器替换为原始生成器时(这种情况一直发生),它总是会导致错误。
我知道我可以添加
require('babel/polyfill')
到我的档案。 polyfill保存regeneratorRuntime
函数。这就是它变得非常奇怪的地方。即使我放置要求(...)
在文件的最顶部,babel在包含polyfill之前调用regeneratorRuntime
,这又导致相同的错误。
为了完整起见,这里是发电机
function *getQueryDummy(start, end, step) {
while (start < end) {
yield [start, '@dummy'];
start += step;
}
}
我使用的是babel版5.8.23
。
有没有办法告诉babel根本不碰generators
?节点本地支持它们,我不需要编译它......
答案 0 :(得分:7)
你可以blacklist regenerator
。如果您使用transform
构建:
babel.transform(code, {blacklist:['regenerator']});
或者从命令行:
--blacklist regenerator