使用默认配置,下一步是指示Babel在客户端上将生成器用于我的异步函数。这使调试看起来似乎更具挑战性。如何禁用此行为?
我正在使用Electron应用程序,因此,我真的希望进行最少的转换以匹配Chromium运行时。
这是我"babel"
中当前的package.json
关键内容:
"babel": {
"presets": [
[
"next/babel",
{
"preset-env": {
"targets": {
"chromium": 73,
"node": 11
}
},
"transform-runtime": {
"regenerator": false
}
}
]
]
}
这里的结果是不包含再生器,但是它在Webpack生成的代码中崩溃。如果我取消禁用regenerator
,则可以看到资产仍然仍在将async
函数转换为生成器。
答案 0 :(得分:2)
根据browsers list文档,我不认为chromium
是有效的目标。尝试将"chrome": "73"
作为目标。请注意,给定目标的值应该是字符串类型,而不是数字。
如果有一个您不想包含的插件,那么exclude
键应让您blacklist a plugin,否则将根据您提供的目标环境使用该插件。 "exclude": ["@babel/plugin-transform-regenerator"]
。
问题提问者的笔记
这解决了我的问题。我通过以下方式获得了预期的结果:
{
"presets": [
[
"next/babel",
{
"preset-env": {
"targets": {
"chrome": "73",
"node": "11"
}
}
}
]
]
}