Skip to main content
On this page

@std/dotenv

Unstable

This @std package is experimental and its API may change without a major version bump.

Overview Jump to heading

Parses and loads environment variables from a .env file into the current process, or stringify data into a .env file format.

Note: The key needs to match the pattern /^[a-zA-Z_][a-zA-Z0-9_]*$/.

// Automatically load environment variables from a `.env` file
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'");

Add to your project Jump to heading

deno add jsr:@std/dotenv

See all symbols in @std/dotenv on

什么是 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 文件中。

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

编辑此页面
隐私政策