Kaip pritaikyti „Node.js .env“ failus skirtingiems aplinkos etapams

Ar kada nors patekote į situaciją, kai jums reikėjo tinkintų aplinkos kintamųjų skirtingiems programos kūrimo etapams? Čia yra vienos eilutės sprendimas.

Nuo .envfailo išradimo kūrimas buvo daug lengvesnis . Naudodami sintaksę ENV_VARIABLE=VALUEir bumą, lengvai nustatysite aplinkos kintamuosius ir vertes ! Šie kintamieji buvo įkelti kaip jūsų aplinkos kintamieji, leidžiantys greitai juos pasiekti:

console.log(process.env.ENV_VARIABLE)

Jei jums vis dar kyla klausimas, ką visa tai reiškia, jūs tikriausiai esate naujas .envfailas. Iš tikrųjų tai yra paprastas konfigūracijos tekstinis failas, naudojamas apibrėžti keletą kintamųjų, kuriuos norite perduoti į savo programos aplinką.

Kad šis failas veiktų, šiam failui reikia panašaus į analizatorių . Analizatorius vienas po kito skaito kintamųjų apibrėžimus ir juos analizuoja aplinkoje. Jis naudoja formatą ENV_VARIABLE = VALUE (Node.js atveju :)process.env[ENV_VARIABLE]=VALUE .

Žinoma, tai nėra įmontuota „Node.js“ funkcija. Turite jį sukonstruoti naudodami populiarų modulį, vadinamą dotenv .

Tai puikus sprendimas, nes tai iš tikrųjų palengvino plėtrą tarp kūrėjų ir visos kūrėjų bendruomenės. Aš asmeniškai naudojau „ dotenv“ modulį, kol bandžiau rasti sprendimą, kuris privertė mane naudoti kitą konfigūracijos failą konkrečioje aplinkoje. Tai būtų dar šauniau ... tiesa? Taip! Bet, deja, dotenvmodulis nepateikia mums šios gėrybės.

Tai kas toliau? Mums reikia šio dalyko, kad palengvintume kūrimą ir testavimą įvairiuose kūrimo etapuose!

Kaip apie pritaikytus .env failus skirtingiems aplinkos etapams?

Ar nemanote, kad tai būtų geras sprendimas? Apibrėžti pasirinktinius aplinkos kintamuosius tiesiog sukuriant .env.envname failą? Saunus! Štai ką padarė „ custom-env “.

„Custom env“ yra biblioteka, sukurta siekiant palengvinti plėtrą, leidžiant kelias .env konfigūracijas skirtingoms aplinkoms. Tai daroma įkeliant aplinkos kintamuosius iš .env.envname failo į mazgo process.envobjektą.

Montavimas

Tiesiog paimkite jį naudodami šią komandą:

npm i custom-env

Naudojimas

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

Pagal numatytuosius nustatymus „ custom-env“ pasirenka .env failą jūsų „dev“ stadijai. Tačiau, jei norite pritaikyti kitam etapui, pridėkite pavadinimą kaip priesagą, kaip .env.envname.

Pavyzdys

Mes galime apibrėžti pasirinktinį aplinkos kintamąjį, skirtą etapų kūrimui.

  • Sukurkite .env.staging failą
  • Apibrėžkite savo kintamuosius
APP_ENV=staging APP_NAME=custom environment app DB_HOST=localhost DB_USER=user DB_PASS=pass
  • Pasiekite savo kintamuosius
// 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)

Laukiama produkcija

staging custom environment app localhost user pass

Viskas, gana lengva. Nedvejodami apibrėžkite daugiau kintamųjų skirtingiems etapams, kuriuos, jūsų manymu, turite:

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

Nustatykite į Dabartinė aplinka

Galite nurodyti „ custom-env“ naudoti konfigūraciją, atitinkančią jūsų dabartinį kūrimo etapą, perduodant „ true“į env()metodas.

Pavyzdys

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

Dabar apibrėžkime pakopos konfigūracijos failą:

Failas: .env.staging

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

Dabar aptarnaukime mazgą su pastatymo aplinka:

NODE_ENV=staging node index.js

Laukiama produkcija

Prašom!

Visa dokumentacija

Norėdami gauti išsamią „ custom-env“ dokumentaciją , apsilankykite puslapyje npm//www.npmjs.com/package/custom-env

Pirminis kodas

Galite gauti arba prisidėti prie „ custom-env“šaltinio kodas adresu //github.com/erisanolasheni/custom-env

Laimingo kodavimo!