跳至主要内容
在本页

环境变量

在 Deno 中使用环境变量有几种方法

内置 Deno.env 跳转到标题

Deno 运行时通过 Deno.env 提供对环境变量的内置支持。

Deno.env 具有 getter 和 setter 方法。以下是用法示例

Deno.env.set("FIREBASE_API_KEY", "examplekey123");
Deno.env.set("FIREBASE_AUTH_DOMAIN", "firebasedomain.com");

console.log(Deno.env.get("FIREBASE_API_KEY")); // examplekey123
console.log(Deno.env.get("FIREBASE_AUTH_DOMAIN")); // firebasedomain.com
console.log(Deno.env.has("FIREBASE_AUTH_DOMAIN")); // true

.env 文件 跳转到标题

Deno 支持 .env 文件。您可以使用 --env-file 标志使 Deno 从 .env 中读取环境变量:deno run --env-file <script>。默认情况下,这将读取 .env;如果您想要或需要从不同的文件加载环境变量,您可以将该文件指定为该标志的参数。

或者,标准库中的 dotenv 包也将从 .env 加载环境变量。

假设您有一个如下所示的 .env 文件

GREETING="Hello, world."

导入 load 模块以自动从 .env 文件导入到进程环境中。

import "jsr:@std/dotenv/load";

console.log(Deno.env.get("GREETING")); // "Hello, world."

有关 .env 处理的更多文档,请参阅 @std/dotenv 文档。

std/cli 跳转到标题

Deno 标准库有一个用于解析命令行参数的 std/cli 模块。 请参阅该模块的文档和示例。

特殊环境变量 跳转到标题

Deno 运行时具有以下特殊环境变量。

名称 描述
DENO_AUTH_TOKENS 用于从私有仓库获取远程模块的,以分号分隔的 Bearer 令牌和主机名列表
(例如 [email protected];[email protected])
DENO_TLS_CA_STORE 以逗号分隔的、按顺序排列的证书存储列表。
可能的值:systemmozilla。默认为 mozilla
DENO_CERT 从 PEM 编码文件中加载证书颁发机构
DENO_DIR 设置缓存目录
DENO_INSTALL_ROOT 设置 deno 安装的输出目录(默认为 $HOME/.deno/bin)
DENO_REPL_HISTORY 设置 REPL 历史记录文件路径。当该值为空时,禁用历史记录文件
(默认为 $DENO_DIR/deno_history.txt)
DENO_NO_PACKAGE_JSON 禁用 package.json 的自动解析
DENO_NO_PROMPT 设置为禁用访问权限提示
(替代在调用时传递 --no-prompt 参数)
DENO_NO_UPDATE_CHECK 设置为禁用检查是否有新的 Deno 版本可用
DENO_V8_FLAGS 设置 V8 命令行选项
DENO_JOBS 测试子命令使用 --parallel 标志时,使用的并行工作线程数。
默认为可用 CPU 的数量。
DENO_WEBGPU_TRACE 使用 WebGPU API 时,输出 WGPU 跟踪 的目录路径
DENO_WEBGPU_BACKEND 选择 WebGPU 将使用的后端,或者以逗号分隔的、按优先级排序的后端列表。可能的值为 vulkandx12metalopengl
HTTP_PROXY HTTP 请求的代理地址(模块下载、fetch)
HTTPS_PROXY HTTPS 请求的代理地址(模块下载、fetch)
NPM_CONFIG_REGISTRY 用于 npm 注册表的 URL。
NO_COLOR 设置为禁用颜色
NO_PROXY 不使用代理的主机列表,以逗号分隔(模块下载、fetch)