Kuidas kohandada Node.js .env-faile erinevate keskkonnaetappide jaoks

Kas olete kunagi sattunud olukorda, kus vajate oma rakenduse erinevate arendusetappide jaoks kohandatud keskkonnamuutujaid? Siin on ühe rea lahendus.

Arendus on .envfaili leiutamisest saadik olnud palju lihtsam . Süntaksi ENV_VARIABLE=VALUEja buumi abil saate hõlpsalt oma keskkonnamuutujaid ja väärtusi seada ! Need muutujad laaditi teie keskkonnamuutujatena, mis võimaldas neile kiiret juurdepääsu:

console.log(process.env.ENV_VARIABLE)

Kui te ikkagi mõtlete, mida see kõik tähendab, siis olete ilmselt .envfailis uus . See on tegelikult lihtne seadistustekstifail, mida kasutatakse mõne muutuja määratlemiseks, mille soovite oma rakenduse keskkonda edastada.

See fail vajab toimimiseks midagi parseri taolist . Parser loeb muutuja määratlused ükshaaval ja sõelub need keskkonnale. See kasutab vormingut ENV_VARIABLE = VALUE (Node.js puhul :)process.env[ENV_VARIABLE]=VALUE .

Muidugi pole see Node.js-is sisseehitatud funktsioon. Peate selle konstrueerima populaarse mooduliga nimega dotenv .

See on kena lahendus, kuna see on arenduse ka arendajate vahel ja kogu arenduskogukonnas tervikuna lihtsustanud. Ma olin isiklikult kasutanud dotenv moodulit, kuni jõudsin hätta, püüdes leida lahendust, mis võiks panna mind kasutama konkreetses keskkonnas erinevat konfiguratsioonifaili. See oleks veelgi lahedam ... eks? Jah! Kuid kahjuks dotenvmoodul ei paku meile seda head.

Mis siis edasi saab? Vajame seda asja, et muuta arendamine ja testimine erinevates arendusetappides lihtsamaks!

Kuidas oleks erinevate keskkonnaetappide kohandatud .env-failidega?

Kas te ei arva, et see oleks hea lahendus? Kohandatud keskkonnamuutujate määratlemine lihtsalt .env.envname- faili loomisega ? Lahe! Selleks on tulnud custom-env .

Kohandatud env on raamatukogu, mis on loodud arendamise hõlbustamiseks, võimaldades mitmel .env-seadistust erinevates keskkondades. Selleks laaditakse keskkonnamuutujad failist .env.envname sõlme process.envobjekti.

Paigaldamine

Haarake see lihtsalt järgmise käsuga:

npm i custom-env

Kasutamine

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

Vaikimisi valib custom-env teie dev-etapi jaoks .env-faili. Erineva etapi jaoks kohandamiseks lisage aga nimi sufiksina nagu .env.envname.

Näide

Saame etapiviisilise arengu jaoks määratleda kohandatud keskkonnamuutuja .

  • Looge .env.staging-fail
  • Määrake oma muutujad
APP_ENV=staging APP_NAME=custom environment app DB_HOST=localhost DB_USER=user DB_PASS=pass
  • Juurdepääs oma muutujatele
// 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)

Eeldatav väljund

staging custom environment app localhost user pass

See on kõik, üsna lihtne. Määrake julgelt rohkem muutujaid teie jaoks arvatavate erinevate etappide jaoks, näiteks:

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

Valige praegune keskkond

Võite öelda custom-env, et see peaks kasutama konfiguratsiooni, mis vastab teie praegusele arendusetapile, edastades tõeneEuroopa env()meetod.

Näide

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

Nüüd määratleme etapiviisilise konfiguratsioonifail:

Fail: .env.staging

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

Nüüd pakume sõlme lavakeskkonnaga:

NODE_ENV=staging node index.js

Eeldatav väljund

Palun!

Täielik dokumentatsioon

Custom-env täieliku dokumentatsiooni saamiseks külastage lehte npm//www.npmjs.com/package/custom-env

Lähtekood

Saate hankida custom-env-i või sellele kaasa aidatalähtekood aadressil //github.com/erisanolasheni/custom-env

Head kodeerimist!