vite.config.ts + vite-env.d.ts — konfigūracija ir tipai
Du failai kodo stulpelyje kaip skirtukai: vite.config.ts (kaip Vite serveruoja ir surenka) ir src/vite-env.d.ts (aplinkos kintamųjų tipai). vite.config.ts valdo, kaip Vite serveruoja (dev) ir surenka (build).
Trys dalys:
server— dev serverio nustatymai (portas 5173, atidaryti naršyklę).build—outDir: 'dist'(kur atsiduria pakuotė) irsourcemap: true(kad produkcijos klaidų pėdsakai būtų skaitomi).define— įrašo konstantą surinkimo metu (pvz. versijos numerį „About" langui).
Svarbiausia — loadEnv ir VITE_ prefiksas. Vite naršyklei atskleidžia tik kintamuosius, prasidedančius VITE_:
import.meta.env.VITE_NASA_API_KEY; // ✅ pasiekiama naršyklėje
import.meta.env.DATABASE_PASSWORD; // ❌ undefined — nėra VITE_ prefikso
Tai — sąmoningas apsauginis turėklas. Pavadinęs kintamąjį be VITE_, jo į pakuotę neįtrauksi net norėdamas — Vite jį palieka tik surinkimo aplinkai. Todėl VITE_ prefiksas verčia sąmoningai nuspręsti „taip, šitą galima parodyti naršyklei".
Dar viena detalė — tipizuoti kintamuosius. src/vite-env.d.ts aprašo, kokių VITE_ kintamųjų tikiesi:
interface ImportMetaEnv {
readonly VITE_NASA_API_KEY: string;
}
Tai duoda autocomplete IR kompiliavimo klaidą, jei parašai su klaida (VITE_NASA_API_KYE) — vietoj tylaus undefined vykdymo metu.
Patarimas.
.envfailą niekada neįkelk į git (jis.gitignore). Vietoj to komituoji.env.examplesu tuščiomis ar demo reikšmėmis — kad kiti žinotų, kokių kintamųjų reikia, bet negautų tavo tikrų. Tai standartinė praktika kiekvienam projektui su paslaptimis.