Ako prispôsobiť súbory Node.js .env pre rôzne fázy prostredia

Od vynálezu .env
súboru bol vývoj oveľa jednoduchší . Premenné a hodnoty prostredia môžete ľahko nastaviť pomocou syntaxe ENV_VARIABLE=VALUE
a boomu! Tieto premenné sa načítali ako vaše premenné prostredia, čo k nim umožňuje rýchly prístup:
console.log(process.env.ENV_VARIABLE)
Ak si stále kladiete otázku, čo to všetko znamená, ste v .env
súbore pravdepodobne nový . Je to vlastne jednoduchý konfiguračný textový súbor, ktorý sa používa na definovanie niektorých premenných, ktoré chcete odovzdať do prostredia vašej aplikácie.
Aby tento súbor fungoval, potrebuje niečo ako syntaktický analyzátor . Analyzátor číta definície premenných jeden po druhom a analyzuje ich na prostredie. Používa formát ENV_VARIABLE = VALUE (v prípade Node.js :)process.env[ENV_VARIABLE]=VALUE
.
Toto samozrejme nie je zabudovaná funkcia v Node.js. Musíte to skonštruovať pomocou populárneho modulu s názvom dotenv .
Je to pekné riešenie, pretože to skutočne uľahčilo vývoj medzi spoluvývojármi a naprieč celou komunitou vývojárov. Ja osobne som používal modul dotenv , až kým som neuvízol v snahe získať riešenie, ktoré by ma mohlo prinútiť použiť iný konfiguračný súbor pre konkrétne prostredie. To by bolo ešte chladnejšie ... nie? Áno! Ale bohužiaľ, dotenvmodul nám túto dobrotu neposkytuje.
Čo ďalej? Túto vec potrebujeme, aby sme uľahčili vývoj a testovanie v rôznych vývojových fázach!
A čo vlastné súbory .env pre rôzne fázy prostredia?
Nemyslíte si, že by to bolo dobré riešenie? Definujete vlastné premenné prostredia iba vytvorením súboru .env.envname ? Super! To je to, čo custom-env prišlo urobiť.
Custom env je knižnica vytvorená s cieľom uľahčiť vývoj povolením viacerých konfigurácií .env pre rôzne prostredia. To sa deje načítaním premenných prostredia zo súboru .env.envname do process.env
objektu uzla .
Inštalácia
Stačí ho chytiť pomocou nasledujúceho príkazu:
npm i custom-env
Využitie
require('custom-env').env()
V predvolenom nastavení custom-env vyberie súbor .env pre vašu vývojovú fázu. Ak však chcete upraviť nastavenie pre inú fázu, pridajte názov ako príponu ako v prípone .env.envname.
Príklad
Môžeme definovať vlastnú premennú prostredia pre postupný vývoj.
- Vytvorte súbor .env.staging
- Definujte svoje premenné
APP_ENV=staging APP_NAME=custom environment app DB_HOST=localhost DB_USER=user DB_PASS=pass
- Získajte prístup k svojim premenným
// 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)
Očakávaný výstup
staging custom environment app localhost user pass
To je všetko, celkom ľahké. Nebojte sa definovať viac premenných pre rôzne fázy, ktoré si myslíte, že máte, napríklad:
.env.testovanie, .env.staging, .env.server1, .env.server2, .env.localhost
Nastavené na súčasné prostredie
Môžete povedať custom-env, aby použil konfiguráciu, ktorá zodpovedá vašej aktuálnej vývojovej fáze, zadaním truedo env()
metóda.
Príklad
Súbor: 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)
Teraz definujme postupný konfiguračný súbor:
Súbor: .env.staging
APP_NAME=Staging Node App USER_NAME=John PASSKEY=J*h*
Teraz poskytneme uzol s pracovným prostredím:
NODE_ENV=staging node index.js
Očakávaný výstup

Nech sa páči!
Úplná dokumentácia
Úplnú dokumentáciu súboru custom-env nájdete na stránke npm//www.npmjs.com/package/custom-env
Zdrojový kód
Môžete získať alebo prispieť do custom-envzdrojový kód na //github.com/erisanolasheni/custom-env
Šťastné kódovanie!