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/version.ts

配置

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

高级模式

环境特定构建

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

使用 shell 命令生成动态值

从 shell 命令生成构建时常量:

构建自动化脚本

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

重要注意事项

值格式

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

属性键

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

TypeScript 声明

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

跨平台兼容性

为多个平台构建时,常量的工作方式相同:

相关