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

chr*_*con 6 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) {
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本地支持它们,我不需要编译它...

Ami*_*mit 7

你可以黑名单 regenerator.如果你正在建设transform:

babel.transform(code, {blacklist:['regenerator']});
Run Code Online (Sandbox Code Playgroud)

或者从命令行:

--blacklist regenerator
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法通过.babelrc黑名单? (4认同)