Vite
- Okunuşu
- vit
Kısaca
Vite, geliştirmede kodu tarayıcıya neredeyse anında sunan ve canlı ortam için optimize edilmiş dosyalar halinde paketleyen hızlı bir web derleme aracıdır.
Vite nedir?
Fransızcada "hızlı" anlamına gelen Vite, Vue'nun yaratıcısı Evan You tarafından geliştirildi ve 2020'de yayımlandı. webpack gibi eski araçlar, geliştirme sunucusu başlamadan önce bütün uygulamayı paketler; bu da projeler büyüdükçe yavaşlar. Vite ise saniyenin çok küçük bir kısmında başlar ve yalnızca tarayıcının istediği dosyaları işler.
Bunu yapabilmesinin nedeni, modern tarayıcıların JavaScript modüllerini doğrudan anlamasıdır. Geliştirme sırasında Vite kaynak dosyalarınızı ES modülleri olarak sunar, TypeScript, JSX ya da Vue dosyalarını anında dönüştürür ve bağımlılıkları çok hızlı esbuild ile önceden paketler. Bir dosyayı kaydettiğinizde sıcak modül değişimi (hot module replacement), sayfayı tamamen yenilemeden ve uygulamanın durumunu koruyarak yalnızca o modülü değiştirir.
Canlı ortam için Vite yine paketler; çünkü çok sayıda küçük dosya ağ üzerinden yavaş yüklenir: küçültülmüş (minified), tree-shaking uygulanmış ve parçalara bölünmüş çıktı üretmek için Rollup'ı ve onun Rust ile yazılmış daha yeni halefi Rolldown'ı kullanır. Resmî şablonlar React, Vue, Svelte, Solid ve diğerlerini tek komutla kurar; Nuxt, SvelteKit ve Astro gibi birçok framework de onun üzerine kuruludur.
Sık yapılan bir yanlış, Vite'ın bir framework olduğu düşüncesidir. O bir derleme aracı ve geliştirme sunucusudur; kullandığınız framework, varsa, onun üzerinde durur. Aynı topluluğun geliştirdiği test çalıştırıcı Vitest de Vite'ın yapılandırmasını yeniden kullanır; böylece testler uygulamayla aynı dosyaları anlar.
Önemli noktalar
- Vite, web projeleri için hızlı bir geliştirme sunucusu ve derleme aracıdır.
- Geliştirmede doğal ES modülleri sunar ve dosyaları istek üzerine dönüştürür.
- Sıcak modül değişimi, değişen modülleri sayfayı tamamen yenilemeden günceller.
- Canlı ortam derlemeleri paketlenir, küçültülür ve parçalara bölünür.
- Nuxt, SvelteKit ve Astro gibi birçok framework Vite üzerine kuruludur.
Örnek
# Create a React + TypeScript project from the official template
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install
npm run dev # dev server, ready in well under a second
npm run build # optimized files in dist/Sık sorulan sorular
Vite ile webpack arasındaki fark nedir?
webpack, geliştirmede uygulamayı sunmadan önce tamamını paketler. Vite ise kaynak dosyaları tarayıcıya doğal ES modülleri olarak sunar ve yalnızca isteneni dönüştürür; bu yüzden çok daha hızlı başlar ve güncellenir. İkisi de canlı ortam için kodu paketler.
Vite yalnızca Vue için mi?
Hayır. Vite'ı Vue'nun yaratıcısı geliştirdi; ama React, Svelte, Solid, Preact, Lit ve düz JavaScript ile çalışır, birçok framework de arka planda onu kullanır.
Vitest nedir?
Vite üzerine kurulu, onun yapılandırmasını ve dönüşümlerini paylaşan, API'si Jest'inkine benzeyen bir test çalıştırıcıdır. Zaten Vite kullanan projelerde popülerdir.
Sık karşılaştırılanlar
İlgili sayfalar
- BundlerWeb Geliştirme, s. 4Bundler, JavaScript modüllerini ve bağımlılıklarını tarayıcıların hızlıca indirip çalıştırabileceği birkaç optimize dosyada birleştiren bir derleme aracıdır.
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- MinificationWeb Geliştirme, s. 31Minification, davranışı değiştirmeden boşlukları, yorumları ve uzun adları silerek kod dosyalarını küçülten işlemdir; böylece web sayfaları daha hızlı iner.
- Tree ShakingWeb Geliştirme, s. 50Tree shaking, hangi ES modül dışa aktarımlarının gerçekten import edildiğine bakarak hiç kullanılmayan kodu son paketten çıkaran bir derleme optimizasyonudur.
- Code SplittingWeb Geliştirme, s. 6Code splitting, bir web uygulamasının JavaScript'ini istenince yüklenen küçük parçalara bölen tekniktir; böylece ilk sayfa yalnızca gereken kodu indirir.
- TranspilerWeb Geliştirme, s. 49Transpiler, kaynak kodu bir dilden ya da dil sürümünden benzer soyutlama düzeyindeki bir başkasına, örneğin TypeScript'ten JavaScript'e çeviren araçtır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin