我对巴别塔有一个奇怪的问题。当我在一个类中使用一个简单的生成器函数时,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
函数。这就是它变得很奇怪的地方。即使我放置了require(...)在文件的最顶部,babel在包含polyfill之前调用
regeneratorRuntime
,这再次导致相同的错误。为了完整起见,这是生成器
function *getQueryDummy(start, end, step) {
while (start < end) {
yield [start, '@dummy'];
start += step;
}
}
我正在使用babel版本
5.8.23
。有没有办法告诉babel根本不要触摸
generators
? Node 本身就支持它们,而无需我进行编译... 最佳答案
您可以blacklist regenerator
。如果您使用transform
进行构建:
babel.transform(code, {blacklist:['regenerator']});
或从命令行输入:
--blacklist regenerator
关于node.js - 如何防止Babel转换生成器功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32995587/