如果节点8.10支持异步/等待,为什么babel将异步函数转换为生成器?
babel翻译:
const foo = async () => {
const b = await bar()
console.log(b)
}
进入:
const foo = (() => {
var _ref2 = (0, _asyncToGenerator3.default)(function* () {
const b = yield bar();
console.log(b);
});
return function foo() {
return _ref2.apply(this, arguments);
};
})()
这是我的babel配置:
"babel": {
"plugins": [
"source-map-support",
"transform-runtime"
],
"presets": [
[
"env",
{
"targets": {
"node": "8.10"
}
}
],
"stage-3"
]
}
答案 0 :(得分:1)
您已经通过启用"stage-3"
选择了编译异步功能。根据配置,env
预设忽略了它们,但是stage-3
再次选择了加入。除了其他原因,这就是为什么我们dropped the stage-X presets完全使用Babel 7.x的原因,因为它们难以理解,并且您几乎不知道它们的实际作用。
我的建议是删除stage-3
预设,如果其中确实有您想要的插件,请逐个添加。