Переменные окружения
Переменные окружения — это переменные, связанные со средой, в которой выполняется процесс Node.js.
Переменные окружения CLI
Существует набор переменных окружения, которые можно задать для настройки поведения Node.js. Подробнее см. в документации по переменным окружения CLI.
process.env
Основной API для взаимодействия с переменными окружения — process.env. Он состоит из объекта с предварительно заполненными пользовательскими переменными окружения, которые можно изменять и дополнять.
Подробнее см. в документации по process.env.
DotEnv
Набор утилит для работы с дополнительными переменными окружения, заданными в файлах .env.
Файлы .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:
Программные 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-v24.x/docs/api/environment_variables.html