deno compile
,独立可执行文件
deno compile [--output <OUT>] <SRC>
将脚本编译成一个自包含的可执行文件。
> deno compile https://docs.deno.org.cn/examples/welcome.ts
如果省略 OUT
参数,可执行文件的文件名将被推断。
标志 跳转到标题
与 deno install
一样,用于执行脚本的运行时标志必须在编译时指定。这包括权限标志。
> deno compile --allow-read --allow-net https://deno.land/std/http/file_server.ts
脚本参数 可以部分嵌入。
> deno compile --allow-read --allow-net https://deno.land/std/http/file_server.ts -p 8080
> ./file_server --help
动态导入 跳转到标题
默认情况下,静态可分析的动态导入(在 import("...")
调用表达式中包含字符串文字的导入)将包含在输出中。
// calculator.ts and its dependencies will be included in the binary
const calculator = await import("./calculator.ts");
但非静态可分析的动态导入不会
const specifier = condition ? "./calc.ts" : "./better_calc.ts";
const calculator = await import(specifier);
要包含非静态可分析的动态导入,请指定一个 --include <path>
标志。
deno compile --include calc.ts --include better_calc.ts main.ts
工作线程 跳转到标题
与非静态可分析的动态导入类似,工作线程 的代码默认情况下不会包含在已编译的可执行文件中。您必须使用 --include <path>
标志来包含工作线程代码。
deno compile --include worker.ts main.ts
交叉编译 跳转到标题
您可以通过添加 --target
CLI 标志来为其他平台编译二进制文件。Deno 目前支持编译到 Windows x64、macOS x64、macOS ARM 和 Linux x64。使用 deno compile --help
列出每个编译目标的完整值。