Tema
/
Interneto svetainių kliento dalies kūrimas JS

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ę).
  • buildoutDir: 'dist' (kur atsiduria pakuotė) ir sourcemap: 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. .env failą niekada neįkelk į git (jis .gitignore). Vietoj to komituoji .env.example su 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.