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

Už ste sa niekedy dostali do situácie, keď ste potrebovali vlastné premenné prostredia pre rôzne vývojové fázy vašej aplikácie? Tu je jednoriadkové riešenie.

Od vynálezu .envsúboru bol vývoj oveľa jednoduchší . Premenné a hodnoty prostredia môžete ľahko nastaviť pomocou syntaxe ENV_VARIABLE=VALUEa 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 .envsú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.envobjektu 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!