Этот пост впервые опубликован в 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»