Kako prilagoditi .env datoteke Node.js za različite faze okruženja

Jeste li se ikad našli u situaciji kada su vam trebale prilagođene varijable okruženja za različite faze razvoja vaše aplikacije? Evo rješenja u jednom retku.

Razvoj je mnogo lakši od izuma .envdatoteke. Sintaksom ENV_VARIABLE=VALUEi bumom lako možete postaviti varijable i vrijednosti svog okruženja ! Ove su se varijable učitale kao vaše varijable okruženja, omogućujući im brzi pristup:

console.log(process.env.ENV_VARIABLE)

U slučaju da se još uvijek pitate što sve ovo znači, vjerojatno ste novi u .envdatoteci. To je zapravo jednostavna konfiguracijska tekstualna datoteka koja se koristi za definiranje nekih varijabli koje želite proslijediti u okruženje vaše aplikacije.

Ova datoteka treba nešto poput parsera da bi mogla raditi. Analizator čita definicije varijabli jednu po jednu i raščlanjuje ih u okruženju. Koristi format ENV_VARIABLE = VALUE (u slučaju Node.js :)process.env[ENV_VARIABLE]=VALUE .

Naravno, ovo nije ugrađena značajka u Node.js. Morate ga osmisliti s popularnim modulom nazvanim dotenv .

To je lijepo rješenje, jer je doista olakšalo razvoj između suprogramera i cijele razvojne zajednice. Osobno sam koristio modul dotenv , sve dok nisam nasukao pokušavajući pronaći rješenje koje bi me moglo natjerati da koristim drugu konfiguracijsku datoteku za određeno okruženje. To bi bilo još hladnije ... zar ne? Da! Ali nažalost, dotenvmodul nam ne pruža ovo dobro.

Pa što je sljedeće? Ta nam stvar treba da bismo olakšali razvoj i testiranje u različitim fazama razvoja!

Što kažete na prilagođene .env datoteke za različite faze okruženja?

Ne mislite li da bi to bilo dobro rješenje? Definiranje prilagođenih varijabli okruženja samo stvaranjem datoteke .env.envname ? Super! To je ono što je custom-env došao učiniti.

Prilagođena env je biblioteka izgrađena da olakša razvoj omogućavanjem višestruke .env konfiguracije za različita okruženja. To se postiže učitavanjem varijabli okoline iz datoteke .env.envname u process.envobjekt čvora .

Montaža

Samo ga zgrabite sljedećom naredbom:

npm i custom-env

Upotreba

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

Prema zadanim postavkama custom-env odabire datoteku .env za vašu fazu razvoja. Međutim, da biste prilagodili drugu fazu, dodajte ime kao sufiks kao u .env.envname.

Primjer

Možemo definirati prilagođenu varijablu okruženja za scenski razvoj.

  • Stvorite datoteku .env.staging
  • Definirajte svoje varijable
APP_ENV=staging APP_NAME=custom environment app DB_HOST=localhost DB_USER=user DB_PASS=pass
  • Pristupite svojim varijablama
// 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čekivani učinak

staging custom environment app localhost user pass

To je to, prilično lako. Slobodno definirajte više varijabli za različite faze za koje mislite da ih imate, poput:

.env.testing, .env.staging, .env.server1, .env.server2, .env.localhost

Postavite na Trenutno okruženje

Možete reći custom-env da koristi konfiguraciju koja odgovara vašoj trenutnoj fazi razvoja dodavanjem trueprema env()metoda.

Primjer

Datoteka: 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)

Ajmo sada definirati konfiguracijsku datoteku stupnjevanja:

Datoteka: .env.staging

APP_NAME=Staging Node App USER_NAME=John PASSKEY=J*h*

Sad poslužimo čvor s scenskim okruženjem:

NODE_ENV=staging node index.js

Očekivani učinak

Izvoli!

Cjelovita dokumentacija

Potpunu dokumentaciju custom-env potražite na stranici npm//www.npmjs.com/package/custom-env

Izvorni kod

Možete dobiti ili doprinijeti custom-envizvorni kod na //github.com/erisanolasheni/custom-env

Sretno kodiranje!