Skip to main content
--define 传递给 bun buildbun build --compile,即可将构建时常量注入应用程序。您可以使用它将构建版本、时间戳或配置标志等元数据直接嵌入编译后的可执行文件中。
terminal

为什么使用构建时常量?

构建时常量直接嵌入到编译后的代码中,因此它们具有:
  • 零运行时开销 – 不需要环境变量查找或文件读取
  • 不可变 – 值在编译时烘焙进二进制文件
  • 可优化 – 未使用的分支可以被死代码消除
  • 安全 – 无需管理外部依赖或配置文件
这类似于 C/C++ 中的 gcc -D#define,但适用于 JavaScript/TypeScript。

基本用法

使用 bun build

terminal

使用 bun build --compile

terminal

JavaScript API

build.ts

常见用例

版本信息

将版本和构建元数据直接嵌入可执行文件:

功能开关

使用构建时常量启用或禁用功能:
src/app.ts

配置

在构建时替换配置对象:
src/app.ts

高级用法

不同环境的构建

为不同环境创建不同的可执行文件:

使用 Shell 命令生成动态值

通过 Shell 命令生成构建时常量:

构建自动化脚本

创建一个注入构建元数据的构建脚本:

重要注意事项

值的格式

值必须是有效的 JSON。Bun 会解析每个值,并将其内联为 JavaScript 表达式:

属性键名

键可以是属性访问模式,而不仅仅是简单标识符:
使用此功能可以在构建时内联环境变量:

TypeScript 声明

对于 TypeScript 项目,声明常量以避免类型错误:

跨平台兼容性

针对多个平台构建时,常量的用法相同:

相关链接