NPM environmentconfig

DtHsMG5

Když jsem před několika lety začal pracovat pro větší společnosti, které už neměly problém vybudovat si docela obstojné zázemí pro správu, buildování, deploy a samotný běh několika stovek, až tisíců servis, začal jsem vnímat nesourodost mezi tím, jak každá jednotlivá servisa načítala svůj config na základě prostředí ve kterém běžela.

Jak už to tak bývá, tak většina servis běží v pár základních prostředích … produkce, development, test a localhost. Někdy je navíc stage nebo nesou zkratku místo celého názvu ( development => dev ).

Propracovanější nástroje potom také při deployi k projektu připojí „.env“ soubor, kde jsou například connection stringy, které by se neměly ukládat do repozitáře a nebo jsou součástí většího poolu, kdy je každý z nich přiřazený k několika servisám dle potřeby.

Z toho důvody jsem pro své potřeby vytvořil NPM package envitonmentconfig.

Hlavní goaly tohoto balíčku jsou:

  • Načítání .env
  • Parsování více formátů s přípravou pro jednoduché rozšíření na další pro další contributory
    • Prozatím CSON, JSON
  • Watherfall loadování configu
    • Všechno z konfigu produkce se promítne do developmentu, ale může být přepsáno
  • Vlastní definice prostředí
    • Jednoduché rozšíření o další prostředí než jsou jenom defaultní, případně jejich vlastní pojmenování