async-await - 将 next.js 配置为使用 Babel 不转换异步函数
问题描述
使用默认配置,Next 指示 Babel 在客户端为我的异步函数使用生成器。这使得调试看起来更具挑战性。如何禁用此行为?
我正在使用一个 Electron 应用程序,所以我真的想要最少量的转换来匹配 Chromium 运行时。
这是我当前的"babel"
关键内容package.json
:
"babel": {
"presets": [
[
"next/babel",
{
"preset-env": {
"targets": {
"chromium": 73,
"node": 11
}
},
"transform-runtime": {
"regenerator": false
}
}
]
]
}
这里的结果是不包含 regenerator,但它在 Webpack 生成的代码中崩溃。如果我删除 的禁用regenerator
,我可以看到资产仍在将async
函数转换为生成器,无论如何。
解决方案
我认为这不是chromium
每个浏览器列表文档的有效目标。尝试"chrome": "73"
作为目标。请注意,给定目标的值应该是字符串类型,而不是数字。
如果有一个您不想包含的插件,那么该exclude
密钥应该允许您将一个插件列入黑名单,否则将根据您提供的目标环境使用该插件。"exclude": ["@babel/plugin-transform-regenerator"]
.
提问者的笔记
这解决了我的问题。我通过以下方式达到了预期的结果:
{
"presets": [
[
"next/babel",
{
"preset-env": {
"targets": {
"chrome": "73",
"node": "11"
}
}
}
]
]
}
推荐阅读
- mysql - 如何在 MongoDB 中生成不在集合中的随机字符串?
- laravel - Laravel Seeding 产生的结果是预期的 3 倍
- python - ImageTk 模块有问题
- c# - 使用 gtk# 将文件从程序和拖放文件拖到任何地方(例如桌面等)
- angular - 延迟 Observable
- visual-studio - 在 Visual Studio 2019 中,通过测试的绿色和白色复选图标有什么区别?
- java - SpringBoot缓存,从@Cacheput方法调用@Cacheable方法不起作用
- php - 比较 2 个 csv 文件并在匹配时突出显示行
- reactjs - 如何处理 onChange ReactJs?里面的细节无法解释
- python - 时间序列预测:如何改进我的回归模型?