环境变量
在 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` 文件的第一个父目录读取; 如果你想从不同的文件加载环境变量,你可以将该文件指定为该标志的参数。 此外,你可以传递多个 --env-file
标志(例如,deno run --env-file=.env.one --env-file=.env.two --allow-env <script>
)以从多个文件加载变量。
注意
当单个 `.env` 文件中存在同一环境变量的多个声明时,将应用第一次出现。 但是,如果同一变量在多个 `.env` 文件(使用多个 --env-file
参数)中定义,则以最后一个指定文件中的值为准。 这意味着将应用在最后一个列出的 `.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 | 一个分号分隔的承载令牌和主机名列表,用于从私有仓库获取远程模块 (例如 [email protected];[email protected] ) |
DENO_TLS_CA_STORE | 逗号分隔的顺序依赖证书存储列表。 可能的值: system ,mozilla 。 默认为 mozilla 。 |
DENO_CERT | 从 PEM 编码文件加载证书颁发机构 |
DENO_DIR | 设置缓存目录 |
DENO_INSTALL_ROOT | 设置 deno install 的输出目录 (默认为 $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 | 用于 test 子命令的 --parallel 标志的并行工作进程数。默认为可用 CPU 数量。 |
DENO_WEBGPU_TRACE | 使用 WebGPU API 时,输出 WGPU 跟踪的目录路径 |
DENO_WEBGPU_BACKEND | 选择 WebGPU 将使用的后端,或逗号分隔的后端列表,按偏好顺序排列。 可能的值为 vulkan 、dx12 、metal 或 opengl |
HTTP_PROXY | HTTP 请求的代理地址(模块下载,fetch) |
HTTPS_PROXY | HTTPS 请求的代理地址(模块下载,fetch) |
NPM_CONFIG_REGISTRY | 用于 npm 注册表的 URL。 |
NO_COLOR | 设置为禁用颜色 |
NO_PROXY | 逗号分隔的不使用代理的主机列表(模块下载,fetch) |