Как настроить файлы Node.js .env для разных этапов среды

1656525012 kak nastroit fajly nodejs env dlya raznyh etapov sredy

автор Эрисан Олашени

3L1Rqj15FgkSr3l1mvp0ENRGt7XMBxZOMd3t

Вы когда-нибудь оказывались в ситуации, когда вам нужны были специальные переменные среды для разных этапов разработки вашего приложения? Вот однострочное решение.

Разработка стала гораздо легче с момента изобретения .env файл. Вы можете легко настроить переменные и значения среды с помощью синтаксиса ENV_VARIABLE=VALUE и бум! Эти переменные были загружены как переменные среды, позволяющие получить быстрый доступ к ним:

console.log(process.env.ENV_VARIABLE)

Если вам все еще интересно, что все это означает, вы, наверное, новичок в этом .env файл. На самом деле это простой текстовый конфигурационный файл, который используется для определения некоторых переменных, которые вы хотите передать в среду вашей программы.

Этот файл требует что-то вроде a парсер чтобы это работало. Синтаксический анализатор читает определение переменных один за другим и анализирует его в окружающей среде. Он использует формат ENV_VARIABLE=ЗНАЧЕНИЕ (в случае Node.js: process.env[ENV_VARIABLE]=VALUE).

Конечно, это не встроенная функция в Node.js. Вы должны создать его с помощью популярного модуля под названием dotenv.

Это хороший обходной путь, поскольку он действительно облегчил разработку между со-разработчиками и сообществом разработчиков в целом. Я лично пользовался dotenv модуля, пока я не застрял в попытке получить решение, которое заставило меня использовать другой файл конфигурации для определенной среды. Это было бы еще круче… не правда ли? Да! Но к сожалению, dotenv модуль не дает нам этого преимущества.

Итак, что дальше? Нам нужна эта вещь, чтобы облегчить разработку и тестирование на разных этапах разработки!

Как насчет пользовательских файлов .env для разных этапов среды?

Вам не кажется, что это было бы хорошее решение? Определение пользовательских переменных среды путем простого создания a .env.envname файл? Круто! Вот что custom-env пришел делать.

Custom env – это библиотека, созданная для облегчения разработки, позволяя несколько конфигураций .env для разных сред. Это делается путем загрузки переменных среды из файла .env.envname в узел process.env объект.

Установка

Просто захватите его с помощью такой команды:

npm i custom-env

Использование

require('custom-env').env()

По умолчанию, custom-env выбирает файл .env для вашего этапа разработки. Однако, чтобы настроить для другого этапа, добавьте название как суффикс, как в .env.envname.

Пример

Мы можем определить пользовательскую переменную среды для a постановка разработки

  • Создайте файл .env.staging
  • Определите свои переменные
APP_ENV=staging
APP_NAME=custom environment app
DB_HOST=localhost
DB_USER=user
DB_PASS=pass
// Require custom-env and set your preferred env file

require ('custom-env').env('staging')

console.log(process.env.APP_ENV)

console.log(process.env.APP_NAME)

console.log(process.env.DB_HOST)

console.log(process.env.DB_PASS)

Ожидаемый результат

staging
custom environment app
localhost
user
pass

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

.env.testing, .env.staging, .env.server1, .env.server2, .env.localhost

Установите текущую среду

Вы можете сказать custom-env чтобы использовать конфигурацию, которая соответствует вашему текущему этапу разработки путем прохождения правда к env() метод.

Пример

Файл: index.js

// Pass true to env() to make it use the current environment stage.

require('custom-env').env(true)

console.log(process.env.APP_NAME)
console.log(process.env.USERNAME)
console.log(process.env.PASSKEY)

Теперь давайте определим промежуточный конфигурационный файл:

Файл: .env.staging

APP_NAME=Staging Node App
USER_NAME=John
PASSKEY=J*h*

Теперь обслуживаем узел с промежуточной средой:

NODE_ENV=staging node index.js

Ожидаемый результат

7tb8GikXlYKDDLXQoSaVwvOKfAxsG9iOVcNz
Получает переменные в соответствии с постановка окружающая среда.

Вот так!

Полная документация

Для полной документации custom-env, посетить страница npm https://www.npmjs.com/package/custom-env

Исходный код

Вы можете получить или внести свой вклад в custom-env исходный код на https://github.com/erisanolasheni/custom-env

Счастливого кодирования!

Добавить комментарий

Ваш адрес email не будет опубликован.