最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Is it possible to tell esbuild to ignore top-level await when bundling to node12 target? - Stack Overflow

programmeradmin0浏览0评论

await has been supported from Node 7.5, but top-level await has been only supported from Node 14.8.

I'm writing script for a service that will wrap user scripts inside a function and run it on Node 12. It means that I can use top-level await although technically it's not possible.

When I bundle my scripts with esbuild, I'd like to set the target to node12 and can still work with top-level await. Is it possible?

Related links:

  • Previous discussion on this topic.
  • support for top level await · Issue #253 · evanw/esbuild

await has been supported from Node 7.5, but top-level await has been only supported from Node 14.8.

I'm writing script for a service that will wrap user scripts inside a function and run it on Node 12. It means that I can use top-level await although technically it's not possible.

When I bundle my scripts with esbuild, I'd like to set the target to node12 and can still work with top-level await. Is it possible?

Related links:

  • Previous discussion on this topic.
  • support for top level await · Issue #253 · evanw/esbuild
Share Improve this question asked Feb 4 at 10:47 OokerOoker 3,0765 gold badges38 silver badges82 bronze badges 2
  • This would be not node12 but something else, probably by specifying support option esbuild.github.io/api/#supported . Can you clarify if there's a problem if you use a different node target as suggested github/evanw/esbuild/issues/253#issuecomment-1042859888 ? – Estus Flask Commented Feb 5 at 11:41
  • That's my current workaround (using node15). If there is a feature that node 12 doesn't support, I need to manually fix that. – Ooker Commented Feb 7 at 16:43
Add a comment  | 

1 Answer 1

Reset to default 0

The supported option of esbuild says:

This setting lets you customize esbuild's set of unsupported syntax features at the individual syntax feature level. [...] Usually this is configured for you when you use the target setting, which you should typically be using instead of this setting. If the target is specified in addition to this setting, this setting will override whatever is specified by the target.

Try this code:

await esbuild.build({
  supported: {
    "top-level-await": true,
  },
})

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>