【Bun中文文档-Bundler】Executables

1,436 阅读1分钟

Bun 的打包工具实现了--compile标志,用于从 TypeScript 或 JavaScript 文件生成独立的二进制文件。

$ bun build ./cli.ts --compile --outfile mycli

这将把cli.ts打包成一个可直接执行的可执行文件:

$ ./mycli
Hello world!

所有导入的文件和包都被打包到可执行文件中,同时还包括 Bun 运行时的副本。支持所有内置的 Bun 和 Node.js API。

注意 — 目前,--compile标志一次只能接受一个入口点,并且不支持以下标志:

  • --outdir — 请改用outfile
  • --external
  • --splitting
  • --public-path

嵌入文件

独立可执行文件支持嵌入文件。

要使用bun build --compile将文件嵌入到可执行文件中,请在代码中导入该文件

// 这将成为一个内部文件路径
import icon from "./icon.png";

import { file } from "bun";

export default {
  fetch(req) {
    return new Response(file(icon));
  },
};

您可能需要为其指定一个--loader,以使其被视为“file”加载程序(以便您获取一个文件路径)。

可以使用Bun.file的函数或 Node.js 的fs.readFile函数(在“node:fs”中)读取嵌入的文件。

最小化

要稍微减小可执行文件的大小,请将--minify传递给bun build --compile。这将使用 Bun 的缩小工具来减小代码大小。总的来说,Bun 的二进制文件仍然太大,我们需要使它更小。