Переменные окружения
Использовать переменные окружения в Deno можно несколькими способами:
Встроенный метод Deno.env
Среда выполнения Deno имеет встроенную поддержку переменных окружения с помощью Deno.env.
У Deno.env есть методы получения и установки значений. Пример использования:
Deno.env.set("FIREBASE_API_KEY", "examplekey123");
Deno.env.set("FIREBASE_AUTH_DOMAIN", "firebasedomain.com");
console.log(Deno.env.get("FIREBASE_API_KEY")); // examplekey123
console.log(Deno.env.get("FIREBASE_AUTH_DOMAIN")); // firebasedomain.com
console.log(Deno.env.has("FIREBASE_AUTH_DOMAIN")); // true
Файл .env
Deno также поддерживает файлы .env. Можно указать Deno считывать переменные окружения из .env с помощью флага --env-file, например:
deno run --env-file main.ts
Будет считан файл .env из текущего рабочего каталога или первого родительского каталога, в котором он есть. Если нужно загрузить переменные окружения из другого файла, укажите этот файл в качестве параметра флага.
Чтобы загрузить переменные из нескольких файлов, можно передать несколько флагов --env-file (например, deno run --env-file=.env.one --env-file=.env.two --allow-env <script>).
Если в одном файле .env переменная окружения объявлена несколько раз, применяется первое объявление. Однако если одна и та же переменная объявлена в нескольких файлах .env (с помощью нескольких аргументов --env-file), приоритет имеет значение из последнего указанного файла. Это означает, что будет применено первое найденное объявление из последнего указанного файла .env.
@std/dotenv
Пакет dotenv из стандартной библиотеки можно использовать для загрузки переменных окружения из .env.
Предположим, у вас есть файл .env следующего вида:
GREETING="Hello, world."
Импортируйте модуль load, чтобы автоматически импортировать переменные из файла .env в окружение процесса.
import { load } from "jsr:@std/dotenv";
const env = await load({
// optional: choose a specific path (defaults to ".env")
envPath: ".env.local",
// optional: also export to the process environment (so Deno.env can read it)
export: true,
});
console.log(env.GREETING);
console.log(Deno.env.get("GREETING"));
Запустите это с помощью deno run --allow-read --allow-env app.ts.
Дополнительную документацию по работе с .env можно найти в документации @std/dotenv.
Установка переменной при запуске команды
Как и в других командах CLI, перед запуском команды можно установить переменные окружения, например:
MY_VAR="my value" deno run main.ts
Это полезно, если нужно менять поведение задачи в зависимости от переменной окружения. Такой подход удобно сочетать с командами deno task, например:
{
...
"tasks": {
"build:full": {
"description": "Build the site with all features",
"command": "BUILD_TYPE=FULL deno run main.ts"
},
"build:light": {
"description": "Build the site without expensive operations",
"command": "BUILD_TYPE=LIGHT deno run main.ts"
}
}
}
При установке переменных окружения, содержащих пробелы, в файле .env заключайте значение в кавычки. Например:
MY_VAR="my value with spaces"
Специальные переменные окружения
Среда выполнения Deno использует следующие специальные переменные окружения.
| имя | описание |
|---|---|
| DENO_AUTH_TOKENS | Разделённый точками с запятой список токенов Bearer и имён хостов для загрузки удалённых модулей из приватных репозиториев (например, abcde12345@deno.land;54321edcba@github.com) |
| DENO_TLS_CA_STORE | Зависимый от порядка список хранилищ сертификатов, разделённых запятыми. Возможные значения: system, mozilla. По умолчанию используется mozilla. |
| DENO_CERT | Загружает центры сертификации из файла в формате PEM. Файл может содержать несколько сертификатов, каждый в отдельном блоке PEM. Это форма переменной окружения для флага --cert. |
| NODE_EXTRA_CA_CERTS | Путь к файлу PEM с дополнительными центрами сертификации. Сертификаты загружаются на уровне корневого хранилища сертификатов, поэтому учитываются в fetch(), Deno.connectTls() и API совместимости с Node (node:https, node:tls). Доступно в Deno 2.8 и новее. Отсутствие или некорректность файла вызывает предупреждение, а не ошибку, как в Node.js. |
| DENO_COVERAGE_DIR | Задаёт каталог для сбора данных профиля покрытия кода. Этот параметр работает только для подкоманды deno test. |
| DENO_DIR | Задаёт каталог кэша |
| DENO_INSTALL | Используется скриптом установки для оболочки, чтобы определить, куда устанавливать исполняемый файл deno. Бинарный файл помещается в $DENO_INSTALL/bin/deno. |
| DENO_INSTALL_ROOT | Задаёт корневой каталог установки для deno install. Исполняемые файлы помещаются в подкаталог bin, если путь уже не заканчивается на bin (по умолчанию — $HOME/.deno, то есть исполняемые файлы помещаются в $HOME/.deno/bin) |
| DENO_REPL_HISTORY | Задаёт путь к файлу истории REPL. Если значение пустое, файл истории отключён (по умолчанию — $DENO_DIR/deno_history.txt) |
| DENO_NO_PACKAGE_JSON | Отключает автоматическое разрешение package.json
|
| DENO_CONDITIONS | Разделённый запятыми список пользовательских условий для разрешения экспортов npm-пакетов (эквивалент флага --conditions) |
| DENO_UNSTABLE_TSGO | Установите значение 1, чтобы проверять типы с помощью нативного компилятора TypeScript (на Go). Эквивалент флага --unstable-tsgo. См. раздел TypeScript. |
| DENO_NO_PROMPT | Установите значение, чтобы отключить запросы разрешений при доступе (альтернатива передаче --no-prompt при запуске) |
| DENO_NO_UPDATE_CHECK | Установите значение, чтобы отключить проверку наличия новой версии Deno |
| DENO_V8_FLAGS | Задаёт параметры командной строки V8 |
| DENO_JOBS | Количество параллельных рабочих процессов для флага --parallel подкоманды test.По умолчанию равно количеству доступных процессоров. |
| DENO_KV_ACCESS_TOKEN | Персональный токен доступа, используемый при подключении к базам данных Deno KV (например, через Deno.openKv или @deno/kv с URL-адресом KV Connect). |
| DENO_AUDIT_PERMISSIONS | Ведёт аудит каждого обращения к разрешениям. Укажите путь к файлу для записи в формате JSONL или буквальное значение otel, чтобы отправлять записи журнала OpenTelemetry через настроенный экспортёр OTel. Список полей см. в разделе аудит разрешений. |
| DENO_TRACE_PERMISSIONS | Установите значение 1, чтобы включить трассировки стека в запросах разрешений (по умолчанию отключено, поскольку сбор трассировок снижает производительность) |
| DENO_WEBGPU_TRACE | Путь к каталогу для сохранения трассировки WGPU при использовании API WebGPU |
| DENO_WEBGPU_BACKEND | Выбирает бэкенд для WebGPU или список бэкендов, разделённых запятыми и упорядоченных по предпочтительности. Возможные значения: vulkan, dx12, metal или opengl
|
| HTTP_PROXY | Адрес прокси-сервера для HTTP-запросов (загрузка модулей, fetch) |
| HTTPS_PROXY | Адрес прокси-сервера для HTTPS-запросов (загрузка модулей, fetch) |
| NPM_CONFIG_REGISTRY | URL-адрес реестра npm. |
| NO_COLOR | Установите значение, чтобы отключить цвета |
| NO_PROXY | Разделённый запятыми список хостов, для которых не используется прокси-сервер (загрузка модулей, fetch) |
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/env_variables