You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置esbuild使其在以node12为目标打包时兼容顶层await?

如何配置esbuild使其在以node12为目标打包时兼容顶层await?

咱们先理清楚背景:await从Node 7.5版本就已经支持了,但顶层await(也就是不在异步函数里直接使用await)要到Node 14.8才正式纳入官方支持。不过你的场景很特殊——你的服务会把用户脚本包裹在一个函数里运行在Node 12环境,这就相当于把顶层await间接放到了异步函数里,所以实际运行时是可以正常工作的。

回到你的核心问题:用esbuild打包时,能不能把目标设为node12同时兼容顶层await?当然可以!你只需要在esbuild的配置里手动开启顶层await的支持就行:

  • 如果用命令行打包,添加参数:--supported:top-level-await=true
  • 如果用JS配置文件,在配置对象里加上:
    supported: {
      'top-level-await': true
    }
    

这样设置后,哪怕你把target指定为node12,esbuild也不会把顶层await判定为语法错误,而是会按照你的需求保留相关代码,完美适配你的服务运行场景。

备注:内容来源于stack exchange,提问作者Ooker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:57:57