@std/dotenv
Нестабильный API
Этот пакет @std является экспериментальным, и его API может измениться без повышения основной версии.
Обзор
Разбирает данные в формате файла .env и преобразует их в строку.
Примечание: ключ должен соответствовать шаблону /^[a-zA-Z_][a-zA-Z0-9_]*$/.
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'");
Переход с load()
load, loadSync и модуль побочных эффектов @std/dotenv/load объявлены устаревшими в пользу флага среды выполнения --env-file, который также поддерживают Node.js и Bun:
deno run --env-file app.ts
deno run --env-file=.env --env-file=.env.local app.ts
| Устаревший API | Замена |
|---|---|
import "@std/dotenv/load" | deno run --env-file app.ts |
load({ export: true }) / loadSync({ export: true })
| --env-file |
load({ envPath: "./.env_prod" }) | --env-file=.env_prod |
load() (чтение в объект без экспорта) | parse(await Deno.readTextFile(".env")) |
На что следует обратить внимание:
-
load()молча игнорирует отсутствие файла.--env-fileвыводит предупреждение, но продолжает работу, а указанная выше заменаparse()выбрасывает исключение. Чтобы файл был необязательным:
import { parse } from "@std/dotenv";
let env: Record<string, string> = {};
try {
env = parse(await Deno.readTextFile(".env"));
} catch (e) {
if (!(e instanceof Deno.errors.NotFound)) throw e;
}
-
$VARвнутри значения в двойных кавычках остается литералом сload(), но подставляется с--env-file. Используйте одинарные кавычки для значений, содержащих буквальный$. -
${KEY:-default}и вложенные значения по умолчанию не поддерживаются в--env-file. Используйтеparse, который сохраняет полное поведение подстановки. --env-fileв Node.js вообще не выполняет подстановку переменных.- На платформах без командной строки, например Deno Deploy, задавайте переменные среды с помощью конфигурации платформы.
Добавление в проект
›_
deno add jsr:@std/dotenv
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/std/dotenv