Spec-Zone.ru › Node.js 22 LTS

Переменные окружения

Переменные окружения — это переменные, связанные со средой, в которой выполняется процесс Node.js.

Переменные окружения CLI

Существует набор переменных окружения, с помощью которых можно настроить поведение Node.js. Подробнее см. в документации по переменным окружения CLI.

process.env

Основной API для взаимодействия с переменными окружения — process.env. Он представляет собой объект с предварительно заполненными пользовательскими переменными окружения, который можно изменять и дополнять.

Подробнее см. в документации по process.env.

DotEnv

Набор утилит для работы с дополнительными переменными окружения, заданными в файлах .env.

Стабильность: 1.1 — Активная разработка

Файлы .env

Файлы .env (также известные как файлы dotenv) задают переменные окружения, с которыми могут взаимодействовать приложения Node.js. Популярность таким файлам принес пакет dotenv.

Ниже приведён пример содержимого простого файла .env:

MY_VAR_A = "my variable A"
MY_VAR_B = "my variable B" copy

Файлы этого типа используются в различных языках программирования и на разных платформах, однако официальной спецификации для них нет. Поэтому Node.js определяет собственную спецификацию, описанную ниже.

Файл .env содержит пары «ключ-значение». Каждая пара представлена именем переменной, за которым следует знак равенства (=), а затем значение переменной.

Такие файлы обычно называются .env или их имя начинается с .env (например, .env.dev, где dev указывает на конкретную целевую среду). Это рекомендуемая схема именования, но она не обязательна: файлы dotenv могут иметь произвольные имена.

Имена переменных

Допустимое имя переменной должно содержать только буквы (заглавные или строчные), цифры и символы подчёркивания (_); оно не может начинаться с цифры.

Точнее, допустимое имя переменной должно соответствовать следующему регулярному выражению:

^[a-zA-Z_]+[a-zA-Z0-9_]*$ copy

Рекомендуется использовать заглавные буквы, символы подчёркивания и, при необходимости, цифры, однако подойдёт любое имя переменной, соответствующее приведённому выше определению.

Например, допустимы следующие имена переменных: MY_VAR, MY_VAR_1, my_var, my_var_1, myVar, My_Var123. А следующие имена недопустимы: 1_VAR, 'my-var', "my var", VAR_#1.

Значения переменных

Значения переменных могут содержать произвольный текст, который при необходимости можно заключить в одинарные (') или двойные (") кавычки.

Значения в кавычках могут занимать несколько строк, тогда как значения без кавычек должны уместиться в одной строке.

При разборе Node.js интерпретирует все значения как текст, то есть любое значение становится строкой JavaScript внутри Node.js. Например, значения 0, true и { "hello": "world" } будут преобразованы в буквальные строки '0', 'true' и '{ "hello": "world" }', а не в число ноль, логическое значение true и объект со свойством hello соответственно.

Примеры допустимых переменных:

MY_SIMPLE_VAR = a simple single line variable
MY_EQUALS_VAR = "this variable contains an = sign!"
MY_HASH_VAR = 'this variable contains a # symbol!'
MY_MULTILINE_VAR = '
this is a multiline variable containing
two separate lines\nSorry, I meant three lines' copy
Пробелы

Начальные и конечные пробельные символы вокруг ключей и значений переменных игнорируются, если только они не заключены в кавычки.

Например:

   MY_VAR_A   =    my variable a
    MY_VAR_B   =    '   my variable b   ' copy

будет обработано так же, как:

MY_VAR_A = my variable a
MY_VAR_B = '   my variable b   ' copy
Комментарии

Символ решётки (#) обозначает начало комментария: остальная часть строки полностью игнорируется.

Однако решётки внутри кавычек обрабатываются как любые другие обычные символы.

Например:

# This is a comment
MY_VAR = my variable # This is also a comment
MY_VAR_A = "# this is NOT a comment" copy
префиксы export

Ключевое слово export можно добавить перед объявлениями переменных; при обработке файла оно будет полностью проигнорировано.

Это позволяет подключать файл в оболочке без изменений.

Пример:

export MY_VAR = my variable copy

Параметры CLI

Файлы .env можно использовать для заполнения объекта process.env с помощью одного из следующих параметров CLI:

  • --env-file=file

  • --env-file-if-exists=file

Программные API

Следующие две функции позволяют напрямую работать с файлами .env:

  • process.loadEnvFile загружает файл .env и заполняет process.env его переменными

  • util.parseEnv разбирает содержимое файла .env и возвращает полученные значения в объекте

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v22.x/docs/api/environment_variables.html

Spec-Zone.ru

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