如何防止 babel 转译生成器函数
How to prevent babel from transpiling generator functions
我对 babel 有一个奇怪的问题。当我在我的 类 中使用一个简单的生成器函数时,babel 从中创建了一个包含对 regeneratorRuntime
.
的调用的函数
var marked3[=10=] = [getQueryDummy].map(regeneratorRuntime.mark);
function getQueryDummy(start, end, step) {
return regeneratorRuntime.wrap(function getQueryDummy$(context[=10=]) {
不好的是,它不会创建这个函数,当我忘记手动用原始生成器替换已编译的生成器时总是会导致错误(这种情况一直发生)
我知道我可以添加
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
我们也可以使用exclude https://babeljs.io/docs/en/babel-preset-env#exclude
并使用 .babelrc
我对 babel 有一个奇怪的问题。当我在我的 类 中使用一个简单的生成器函数时,babel 从中创建了一个包含对 regeneratorRuntime
.
var marked3[=10=] = [getQueryDummy].map(regeneratorRuntime.mark);
function getQueryDummy(start, end, step) {
return regeneratorRuntime.wrap(function getQueryDummy$(context[=10=]) {
不好的是,它不会创建这个函数,当我忘记手动用原始生成器替换已编译的生成器时总是会导致错误(这种情况一直发生)
我知道我可以添加
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
我们也可以使用exclude https://babeljs.io/docs/en/babel-preset-env#exclude
并使用 .babelrc