de Erisan Olasheni
Cum se personalizează fișierele .env Node.js pentru diferite etape de mediu
Te-ai găsit vreodată într-o situație în care ai nevoie de variabile de mediu personalizate pentru diferite etape de dezvoltare ale aplicației tale? Iată o soluție cu o singură linie.
Dezvoltarea a fost mult mai ușoară de la inventarea .env
fişier. Puteți seta cu ușurință variabilele și valorile de mediu cu sintaxa ENV_VARIABLE=VALUE
și boom! Aceste variabile au fost încărcate ca variabile de mediu, făcând posibil accesul rapid la ele:
console.log(process.env.ENV_VARIABLE)
În cazul în care vă mai întrebați ce înseamnă toate acestea, ei bine, probabil că sunteți nou în .env
fişier. Este de fapt un fișier text de configurare simplu, care este utilizat pentru a defini unele variabile pe care doriți să le transmiteți în mediul aplicației dvs.
Acest fișier are nevoie de ceva de genul analizor să-l facă să funcționeze. Analizorul citește definițiile variabilelor unul câte unul și le analizează la mediu. Folosește formatul ENV_VARIABLE = VALOARE (în cazul Node.js: process.env[ENV_VARIABLE]=VALUE
).
Desigur, aceasta nu este o caracteristică încorporată în Node.js. Trebuie să-l proiectați cu un modul popular numit dotenv.
Este o soluție plăcută, deoarece a făcut cu adevărat dezvoltarea mai ușoară între co-dezvoltatori și în întreaga comunitate de dezvoltatori în ansamblu. Eu personal folosisem dotenv modul, până când m-am blocat încercând să obțin o soluție care să mă facă să folosesc un fișier de configurare diferit pentru un anumit mediu. Ar fi și mai mișto … nu? Da! Dar, din păcate, dotenv modulul nu ne oferă acest bun.
Deci ce urmeaza? Avem nevoie de acest lucru pentru a facilita dezvoltarea și testarea în diferite etape de dezvoltare!
Ce zici de fișierele .env personalizate pentru diferite etape de mediu?
Nu crezi că ar fi o soluție bună? Definirea variabilelor de mediu personalizate doar prin crearea unui .env.envname fişier? Misto! Asta este custom-env a ajuns să facă.
Custom env este o bibliotecă construită pentru a face dezvoltarea mai ușoară, permițând mai multe configurații .env pentru diferite medii. Acest lucru se face prin încărcarea variabilelor de mediu dintr-un fișier .env.envname în nod process.env
obiect.
Instalare
Prindeți-l cu următoarea comandă:
npm i custom-env
Utilizare
require('custom-env').env()
În mod implicit, custom-env alege fișierul .env pentru etapa de dezvoltare. Cu toate acestea, pentru a personaliza pentru o etapă diferită, adăugați numele ca sufix ca în .env.envname.
Exemplu
Putem defini o variabilă de mediu personalizată pentru un dezvoltarea etapelor.
- Creați un fișier .env.staging
- Definiți variabilele
APP_ENV=staging
APP_NAME=custom environment app
DB_HOST=localhost
DB_USER=user
DB_PASS=pass
- Accesați variabilele
// 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)
Ieșire preconizată
staging
custom environment app
localhost
user
pass
Gata, destul de ușor. Simțiți-vă liber să definiți mai multe variabile pentru diferite etape pe care credeți că le aveți, cum ar fi:
.env.testing, .env.staging, .env.server1, .env.server2, .env.localhost
Setați la mediul actual
Poți spune custom-env pentru a utiliza o configurație care se potrivește cu etapa curentă de dezvoltare prin trecere Adevărat la env()
metodă.
Exemplu
Fișier: 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)
Acum să definim un fișier de configurare pentru etapă:
Fișier: .env.staging
APP_NAME=Staging Node App
USER_NAME=John
PASSKEY=J*h*
Acum, să difuzăm nodul cu mediul intermediar:
NODE_ENV=staging node index.js
Ieșire preconizată
Gata!
Documentație completă
Pentru documentația completă a custom-env, Viziteaza pagina npm https://www.npmjs.com/package/custom-env
Cod sursa
Puteți obține sau contribui la custom-env cod sursă la https://github.com/erisanolasheni/custom-env
Codificare fericită!