Surinkimas, kintamieji ir raktų tiesa
Programa tipizuota ir griežta — laikas ją išleisti. Trys dalys: surinkimas, aplinkos kintamieji ir svarbiausia pamoka apie raktus.
Surinkimas (build). Dev metu Vite verčia .ts „ant skrydžio". Produkcijai reikia sukurti optimizuotą, statinį rinkinį:
npm run build # tsc --noEmit && vite build → dist/
build skriptas pirma patikrina tipus (tsc --noEmit), ir tik jei jie švarūs — surenka (vite build) į dist/ aplanką: sujungtą, sumažintą JavaScript, CSS ir index.html. Tą dist/ įkeli į bet kurį statinį hostingą (Netlify, GitHub Pages, Railway).
Aplinkos kintamieji. API raktą laikom .env faile, ne kode:
const API_KEY = import.meta.env.VITE_NASA_API_KEY;
Vite atskleidžia naršyklei tik kintamuosius su VITE_ prefiksu — tai apsauginis turėklas, kad netyčia „neišsprūstų" serverio paslaptis.
Ir svarbiausia pamoka — raktų tiesa. Pagalvok, kur atsiduria VITE_NASA_API_KEY po vite build. Vite jį įrašo tiesiai į pakuotę — į dist/assets/*.js. Atidaręs tą failą (ar naršyklės DevTools) kiekvienas perskaitys tavo raktą atviru tekstu.
Tai NASA raktui gerai — jis viešas ir ribojamas kvota pagal sumanymą; blogiausia, ką kas nors padarys, — išnaudos tavo ~30 užklausų/val. Bet iš to plaukia principas:
Slaptas raktas niekada negali gyventi front-end kode. Jei raktas privalo likti paslaptyje (mokėjimų, DB, siuntimų API), jis priklauso serveriui, kuris tarpininkauja užklausai — klientas kreipiasi į tavo serverį, o serveris (su paslėptu raktu) — į išorinį API.
Ir tai — sąžiningas atsakymas į klausimą „kam apskritai reikia serverio pusės kurso?". Būtent tam: dalykams, kurie negali būti naršyklėje — paslaptims, patikimai validacijai, duomenų nuosavybei.