- 使用
Bun.TOML.parse解析 TOML 字符串 - 在运行时通过
import和require将 TOML 文件作为模块导入(支持热重载和监听模式) - 通过 Bun 的打包器在前端应用中
import和requireTOML 文件
运行时 API
Bun.TOML.parse()
将 TOML 字符串解析为 JavaScript 对象。
支持的 TOML 特性
Bun 的 TOML 解析器支持 TOML v1.0 规范,包括:- 字符串:基本字符串 (
"...") 和字面量字符串 ('...'),包括多行字符串 - 整数:十进制、十六进制(
0x)、八进制(0o)和二进制(0b) - 浮点数:包括
inf和nan - 布尔值:
true和false - 数组:支持混合类型及嵌套数组
- 表:标准表(
[table])和内联表({ key = "value" }) - 表数组:
[[array]] - 点记法键:
a.b.c = "value" - 注释:使用
#
错误处理
如果 TOML 无效,Bun.TOML.parse() 会抛出异常:
模块导入
ES 模块
你可以直接将 TOML 文件作为 ES 模块导入。TOML 内容会被解析,并以默认导出和命名导出的形式提供:config.toml
默认导入
命名导入
你可以将顶层 TOML 表解构为命名导入:导入属性
你也可以使用导入属性将任意文件以 TOML 形式加载:CommonJS
TOML 文件同样可以在 CommonJS 中被 require:TOML 热重载
当你使用bun --hot 运行应用时,对 TOML 文件的修改会被自动检测并热重载,无需重启:
config.toml
terminal
config.toml 时,改动会立即反映到正在运行的应用中。
打包器集成
当你导入 TOML 文件并使用 Bun 打包时,TOML 会在构建时被解析,并作为 JavaScript 模块包含到打包产物中:terminal
- 生产环境零运行时 TOML 解析开销
- 更小的打包体积
- 对未使用属性(命名导入)的摇树优化支持