Этот пост впервые опубликован в PoopCode Анкет
В этом уроке давайте посмотрим, как управлять несколькими средами в node.js с помощью конфигурации узла. В бэкэнд -проектах очень важно управлять несколькими средами, когда вы приложения достигают уровня производства.
Node Config — это сладкий маленький пакет NPM, который позволяет вам определить набор параметров по умолчанию и расширять их для различных среду развертывания (разработка, QA, постановка, производство и т. Д.).
Конфигурации хранятся в файлах конфигурации (JSON или YAML) в вашем приложении и могут быть переопределены и расширены переменными среды, параметров командной строки или внешними источниками.
Нам нужно два пакета NPM, чтобы сделать эту работу, конфигурацию и Cross Env. Cross-ENV позволяет легко запустить единую команду, не беспокоясь о настройке или правильном использовании переменной среды для платформы.
Давайте добавим эти пакеты в файл package.json.
"dependencies": {
....
"config": "^3.3.1"
},
"devDependencies": {
...
"cross-env": "^7.0.2"
}
Теперь давайте создадим файлы конфигурации. Внутри корневого каталога вашего проекта создайте каталог с именем config и создайте разные файлы JSON для каждой среды.
Каждый из этого файла будет содержать конфигурацию, связанную с каждой средой.
Например, Development.json будет иметь следующую конфигурацию.
{
"app": {
"port": 3352,
"ip":"0.0.0.0",
"https_port":9004
},
"db": "mongodb://devapp:pAsS2fsd@mongodb:27017/db"
}
В коде запуска приложения, в app.js или index.js, нам необходимо получить эту конфигурацию из пакета конфигурации. Пакет конфигурации ищет каталог конфигурации внутри вашего каталога проекта и считывает конфигурацию из файлов JSON или YAML.
const config = require("config");
const ip = config.get('app.ip');
const port = config.get('app.port');
Последним шагом является настройка запуска сценариев в package.json. Для каждой среды (другими словами для каждого файла конфигурации в Directory Config) мы можем создать сценарий запуска.
"scripts": {
"start:dev": "cross-env NODE_ENV=development node app.js",
"start:qa": "cross-env NODE_ENV=qa node app.js",
"start:prod": "cross-env NODE_ENV=production node app.js",
"start:demo": "cross-env NODE_ENV=demo node app.js"
}
Вот и все. Теперь вы можете запустить свое приложение в разных средах, используя NPM Start: команда в вашей среде. На сервере разработки вы можете запустить приложение, используя NPM Start: Dev Script.
Оригинал: «https://dev.to/dedrevil/manage-multiple-environments-in-node-js-using-node-config-15cj»