Переменные окружения
Переменные окружения — это переменные, связанные со средой, в которой выполняется процесс 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-v22.x/docs/api/environment_variables.html