.env 文件,并提供惯用的方式以编程方式读取和写入环境变量。您还可以使用 Bun 特定的环境变量配置 Bun 的部分运行时行为。
设置环境变量
Bun 会自动读取以下文件(按优先级递增顺序排列)。.env.env.production、.env.development、.env.test(取决于NODE_ENV的值).env.local
.env
Windows 的跨平台解决方案
Windows 的跨平台解决方案
对于跨平台解决方案,请使用 Bun Shell,例如通过 在 Windows 上,通过
bun exec。bun run 调用的 package.json 脚本会自动使用 Bun Shell,因此以下代码也是跨平台的。package.json
process.env 的属性赋值来以编程方式设置。
手动指定 .env 文件
--env-file 标志会覆盖 Bun 加载的 .env 文件。它既可以用于使用 bun 运行文件时,也可以用于运行 package.json 脚本时。
禁用自动加载 .env
使用 --no-env-file 可以禁用 Bun 的自动 .env 文件加载,例如在生产环境或 CI/CD 管道中希望仅依赖系统环境变量时。
bunfig.toml 中禁用它:
bunfig.toml
--env-file 传递的文件仍会被加载。
引号
Bun 支持双引号、单引号和模板字面量反引号:.env
展开
Bun 会自动展开环境变量,因此您可以引用之前定义的变量。.env
.env
$。
.env
dotenv
Bun 会自动读取 .env 文件,因此不需要 dotenv 和 dotenv-expand。
读取环境变量
从process.env 读取当前环境变量。
Bun.env 和 import.meta.env,两者都是 process.env 的别名。
bun --print process.env。
TypeScript
在 TypeScript 中,process.env 的所有属性都被类型化为 string | undefined。
AWESOME 属性添加到 process.env 和 Bun.env。
配置 Bun
Bun 读取以下环境变量来配置其行为的各个方面。运行时转译器缓存
对于大于 4 KB 的文件,Bun 会将转译后的输出缓存到$BUN_RUNTIME_TRANSPILER_CACHE_PATH 或平台特定的缓存目录。这使得使用 Bun 的 CLI 加载更快。
该缓存是全局的,在所有项目之间共享,并且是内容可寻址的,因此永远不会包含重复条目。随时可以安全删除,即使在 Bun 进程运行时也可以。
在使用 Docker 等临时文件系统时禁用此缓存。Bun 的 Docker 镜像会自动禁用它。
禁用运行时转译器缓存
要禁用运行时转译器缓存,请将BUN_RUNTIME_TRANSPILER_CACHE_PATH 设置为空字符串或字符串 "0"。
它缓存什么?
它缓存:- 大于 4 KB 的源文件的转译输出。
- 文件转译输出的 sourcemap
.pile 扩展名。