Vite (frantsuzcha “tez” so’zidan, “vit” deb talaffuz qilinadi) — Vue freymvorkining yaratuvchisi Evan Yu tomonidan 2020-yilda taqdim etilgan, frontend loyihalar uchun ishlab chiqish vositasi. U Webpack kabi an’anaviy bundlerlarning ishga tushish sekinligi muammosini hal qilish maqsadida yaratilgan.
Yaratilish sababi
Loyiha kattalashgan sayin, Webpack kabi vositalar har bir ishga tushirishda butun ilovani oldindan to’plashi kerak edi, bu esa yuzlab fayldan iborat loyihalarda ishga tushish vaqtini sezilarli darajada oshirardi. Evan Yu bu muammoni tubdan boshqacha yondashuv bilan hal qilishga qaror qildi.
Native ES modullar orqali tezkor dev-server
Vite ishlab chiqish rejimida kodni oldindan to’plamaydi — buning o’rniga u zamonaviy brauzerlarning native ES modullarni (import/export) to’g’ridan-to’g’ri qo’llab-quvvatlashidan foydalanadi. Brauzer faqat aynan foydalanuvchi ko’rayotgan sahifaga zarur fayllarni so’raydi, bu esa loyiha hajmidan qat’iy nazar deyarli bir zumda ishga tushishni ta’minlaydi.
esbuild va Rollup’dan foydalanish
Vite ishlab chiqish paytida kutubxonalarni oldindan tayyorlash uchun Go tilida yozilgan, ancha tezkor esbuild vositasidan foydalanadi, yakuniy production build uchun esa yaxshi optimallashtirilgan Rollup bundleridan foydalanadi. Bu ikki bosqichli strategiya ham tezkorlik, ham yakuniy kod sifatini birlashtiradi.
Hot Module Replacement tezligi
Vite’da Hot Module Replacement (kodni qayta yuklamasdan yangilash) deyarli ish faylining hajmiga bog’liq bo’lmagan holda tez ishlaydi, chunki faqat o’zgargan modul qayta so’raladi. An’anaviy bundlerlarda esa loyiha kattalashgan sayin bu jarayon sekinlashib borishi odatiy hol edi.
Qo’llanilish
Vite dastlab Vue loyihalari uchun mo’ljallangan bo’lsa-da, hozirda React, Svelte va oddiy JavaScript loyihalarida ham keng qo’llaniladi, chunki u freymvorkdan mustaqil arxitektura bilan qurilgan. Ko’plab yangi loyiha shablonlari (scaffolding vositalari) endi Webpack o’rniga standart tanlov sifatida Vite’ni taklif qiladi.
Bog’liq tushunchalar
Evan You, Vue, esbuild, Rollup, Webpack, ES modullar, Hot Module Replacement