Переменные окружения¶
Переменные окружения — это переменные, связанные со средой, в которой выполняется процесс Node.js.
Переменные окружения CLI¶
Набор переменных окружения можно задать, чтобы настроить поведение Node.js; подробнее см. в документации по переменным окружения CLI.
process.env¶
Основной API для работы с переменными окружения — process.env: объект с предзаполненными пользовательскими переменными окружения, которые можно изменять и дополнять.
Подробнее см. в [документации по process.env][process.env documentation].
DotEnv¶
Стабильность: 2 – Стабильная
API является удовлетворительным. Совместимость с NPM имеет высший приоритет и не будет нарушена кроме случаев явной необходимости.
Набор утилит для работы с дополнительными переменными окружения, заданными в файлах .env.
Файлы .env¶
Файлы .env (также называемые dotenv-файлами) задают переменные окружения, с которыми затем могут работать приложения Node.js (подход популяризован пакетом dotenv).
Ниже пример содержимого простого файла .env:
1 2 | |
Такие файлы используются в разных языках и платформах, но формальной спецификации для них нет, поэтому Node.js определяет собственную спецификацию, описанную ниже.
Файл .env содержит пары «ключ — значение»: имя переменной, знак равенства (=) и значение переменной.
Обычно файл называется .env или имя начинается с .env (например .env.dev, где dev обозначает целевое окружение). Такое именование рекомендуется, но не обязательно: dotenv-файлу можно дать любое имя.
Имена переменных¶
Допустимое имя переменной может содержать только буквы (в любом регистре), цифры и подчёркивания (_) и не может начинаться с цифры.
Точнее, имя должно соответствовать регулярному выражению:
1 | |
Рекомендуется использовать ЗАГЛАВНЫЕ БУКВЫ, подчёркивания и при необходимости цифры, но подойдёт любое имя, удовлетворяющее определению выше.
Например, допустимы имена: MY_VAR, MY_VAR_1, my_var, my_var_1, myVar, My_Var123; недопустимы: 1_VAR, 'my-var', "my var", VAR_#1.
Значения переменных¶
Значением может быть произвольный текст, при необходимости взятый в одинарные (') или двойные (") кавычки.
Значения в кавычках могут занимать несколько строк, без кавычек — только одну строку.
После разбора Node.js все значения трактуются как текст, то есть в Node.js получается строка JavaScript. Например значения 0, true и { "hello": "world" } дадут строки '0', 'true' и '{ "hello": "world" }', а не число ноль, логическое true и объект со свойством hello.
Примеры допустимых переменных:
1 2 3 4 5 6 | |
Пробелы¶
Ведущие и завершающие пробельные символы вокруг ключа и значения игнорируются, если они не внутри кавычек.
Например:
1 2 | |
эквивалентно:
1 2 | |
Комментарии¶
Символ решётки (#) начинает комментарий: остаток строки игнорируется полностью.
Решётки внутри кавычек считаются обычными символами.
Например:
1 2 3 | |
Префиксы export¶
Перед объявлением переменной можно указать ключевое слово export; оно полностью игнорируется при обработке файла.
Это удобно, чтобы без изменений подключать файл в оболочке (source).
Пример:
1 | |
Параметры CLI¶
Файлы .env можно использовать для заполнения объекта process.env одним из параметров CLI:
-
[
--env-file=file][] -
[
--env-file-if-exists=file][]
Программные API¶
Две следующие функции позволяют напрямую работать с файлами .env:
-
[
process.loadEnvFile][] — загружает файл.envи помещает переменные вprocess.env -
[
util.parseEnv][] — разбирает сырое содержимое файла.envи возвращает объект