Spec-Zone.ru › Deno 2

@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

См. все символы в @std/dotenv на

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/std/dotenv

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API