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