Skip to main content
On this page

@std/dotenv

不稳定

此 @std 包是实验性质的,其 API 可能会在不进行大版本升级的情况下更改。

概述 Jump to heading

解析并加载环境变量从 .env 文件到当前进程,或将数据转换为 .env 文件格式的字符串。

注意:键必须匹配模式 /^[a-zA-Z_][a-zA-Z0-9_]*$/。

// 自动从 `.env` 文件加载环境变量
import "@std/dotenv/load";
import { parse, stringify } from "@std/dotenv";
import { assertEquals } from "@std/assert";

assertEquals(parse("GREETING=hello world"), { GREETING: "hello world" });
assertEquals(stringify({ GREETING: "hello world" }), "GREETING='hello world'");

添加到您的项目 Jump to heading

deno add jsr:@std/dotenv

查看 @std/dotenv 中所有符号

什么是 dotenv? Jump to heading

dotenv 是一个流行的开发环境变量管理方式。它从 .env 文件加载键值对到 process.env,让你无需硬编码即可轻松配置应用。

何时使用 @std/dotenv Jump to heading

在开发时、预览构建或简单部署场景下使用此包,当你的平台不会自动注入环境变量时,它帮助将秘密和配置从源码中分离开。

示例 Jump to heading

// 在进程启动时自动从 .env 加载
import "@std/dotenv/load";

// 或者手动加载
import { load } from "@std/dotenv";

const env = await load({
  envPath: ".env.local", // 读取变量的路径(默认:.env)
  defaultsPath: ".env.defaults", // 如果缺少键时的可选默认值
  examplePath: ".env.example", // 断言所需键存在
  export: true, // 同时导出到进程环境变量
  allowEmptyValues: true, // 允许示例/默认文件中有空值
  override: false, // 默认不覆盖已存在的环境变量
});

// 返回对象中的值和(若 export: true)通过运行时环境 API(例如 Deno.env)均可访问
console.log(env.DATABASE_URL);
// Deno.env.get("DATABASE_URL");
// 解析和字符串化
import { parse, stringify } from "@std/dotenv";

const text = `
GREETING="hello world" # 注释
PORT=8080
`;

parse(text); // { GREETING: "hello world", PORT: "8080" }

stringify({ GREETING: "hello world" });
// "GREETING='hello world'"

小贴士 Jump to heading

  • 不要提交秘密信息。请将 .env 添加到项目的 .gitignore 文件中。

你找到了你需要的东西吗?

编辑此页面
隐私政策