Як налаштувати файли .env Node.js для різних стадій середовища

Ви коли-небудь потрапляли в ситуацію, коли вам потрібні були спеціальні змінні середовища для різних етапів розробки вашого додатка? Ось однорядкове рішення.

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

console.log(process.env.ENV_VARIABLE)

Якщо ви все ще замислюєтесь, що все це означає, ви, мабуть, вперше у .envфайлі. Це насправді простий конфігураційний текстовий файл, який використовується для визначення деяких змінних, які ви хочете передати у середовище вашої програми.

Цей файл потребує щось на зразок синтаксичного аналізатора, щоб він працював. Синтаксичний аналізатор читає визначення змінних по одному і аналізує їх у середовищі. Він використовує формат ENV_VARIABLE = VALUE (у випадку Node.js :)process.env[ENV_VARIABLE]=VALUE .

Звичайно, це не вбудована функція в Node.js. Вам доведеться спроектувати його за допомогою популярного модуля під назвою dotenv .

Це хороший обхідний шлях, оскільки це справді полегшило розробку між співрозробниками та спільнотою розробників в цілому. Я особисто використовував модуль dotenv , поки не опинився на меті, намагаючись отримати рішення, яке могло б змусити мене використовувати інший файл конфігурації для певного середовища. Це було б ще крутіше ... так? Так! Але, на жаль, дотенвмодуль не надає нам цього доброго.

То що далі? Нам потрібна ця річ, щоб спростити розробку та тестування на різних етапах розробки!

Як щодо користувацьких файлів .env для різних стадій середовища?

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

Спеціальна env - це бібліотека, створена для полегшення розробки, дозволяючи налаштування декількох .env для різних середовищ. Це робиться шляхом завантаження змінних середовища з файлу .env.envname в process.envоб'єкт вузла .

Встановлення

Просто захопіть його за допомогою такої команди:

npm i custom-env

Використання

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

За замовчуванням custom-env вибирає файл .env для вашого етапу розробки. Однак, щоб налаштувати для іншого етапу, додайте ім’я як суфікс, як у .env.envname.

Приклад

Ми можемо визначити користувацьку змінну середовища для поетапної розробки.

  • Створіть файл .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 використовувати конфігурацію, яка відповідає вашому поточному етапу розробки, передавши trueдо 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

Очікуваний результат

Ось так!

Повна документація

Повну документацію custom-env відвідайте сторінку npm//www.npmjs.com/package/custom-env

Вихідний код

Ви можете отримати або внести участь у користувацькому envвихідний код за адресою //github.com/erisanolasheni/custom-env

Щасливого кодування!