你能帮我替换过时的
deno bundle
命令吗?
我想为 esbuild 更改它,但是运行命令:
./node_modules/.bin/esbuild --bundle lib/commands/abc/main.ts --outfile=mod.abc.ts
给我一个错误:
[ERROR] Top-level await is currently not supported with the "iife" output format
我也尝试过使用
--format=cjs
和 --format=esm
选项,但输出仍然不同于 deno bundle
输出。例如。不包括进口。
我应该如何使用它?
或者你能帮我做其他选择吗?目标是在不修改主要代码的情况下快速删除
deno bundle
。
esbuild CLI 界面不支持捆绑 Deno TypeScript 模块代码(至少在使用远程导入时是这样——例如
https://deno.land/...
)。
esbuild 的 JavaScript API 可以使用由 Deno 核心团队成员之一维护的插件来处理这些导入:https://github.com/lucacasonato/esbuild_deno_loader
插件的自述文件解释了它的用法,并且对 esbuild 的 JavaScript API 也进行了广泛的记录:https://esbuild.github.io/
在当前的 Deno 版本 v1.32.3 中有三个推荐的
deno bundle
替换:
Warning "deno bundle" is deprecated and will be removed in the future.
Use alternative bundlers like "deno_emit", "esbuild" or "rollup" instead.
参见:
如果 esbuild 不工作,那么你可以检查其他的。此外,esbuild 有一个可能相关的项目 deno-esbuild:
Rollup 有一些关于 Deno 用法的说明:
deno_emit 是这三个中最以 Deno 为中心的——它具有与已删除的
Deno.emit()
相似的功能,但作为用户可加载模块,以避免将其代码包含在主 Deno 二进制文件中。原则上它应该与deno bundle
最相似,但我不确定它已经有多稳定。