如何防止babel转换发电机功能

时间:2015-10-07 14:54:40

标签: node.js babeljs

我和巴贝尔有一个奇怪的问题。当我在我的一个类中使用一个简单的生成器函数时,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?节点本地支持它们,我不需要编译它......

1 个答案:

答案 0 :(得分:7)

你可以blacklist regenerator。如果您使用transform构建:

babel.transform(code, {blacklist:['regenerator']});

或者从命令行:

--blacklist regenerator