Ulaşım
- Adres: 2342 Sk, İpekyol, İpek Ap 49A, 63250 Haliliye/Şanlıurfa
- Telefon:
0505 532 36 38 - eMail: admin@alestaweb.com
Vite 7 projeniz var ve build süreleri canınızı sıkıyor mu? 46 saniye süren bir build'in 6 saniyeye düşmesi kulağa hoş geliyor değil mi (sounds great)? İşte tam da bu noktada Vite 8 Rolldown devreye giriyor. Alesta Web olarak bu rehberde, 12 Mart 2026'da yayınlanan Vite 8 stable sürümünü, Rust tabanlı Rolldown bundler'ı (Rust-based Rolldown bundler) ve Vite 7'den Vite 8'e migration sürecini adım adım anlatacağız.
Vite 8, popüler frontend build tool'unun (build tool) Mart 2026'da yayınlanan büyük versiyon güncellemesidir. Vite 2'den bu yana en büyük mimari değişiklik (biggest architectural change since Vite 2) Vite 8 ile geliyor: çift bundler yapısı (dual-bundler architecture) yerine artık tek bir Rust tabanlı bundler kullanılıyor — Rolldown.
Önceki sürümlerde Vite, hızlı geliştirme için esbuild, production için ise Rollup kullanıyordu. Bu ikili yaklaşım, dev ortamında gördüğünüz şeyin production'da farklı davranabilmesi gibi tutarsızlıklara yol açıyordu. Alesta Web ekibi olarak müşterilerimizin projelerinde tam olarak bu sorunu defalarca yaşadık. Vite 8 bu sıkıntıyı kökten çözüyor.
Vite 8.0 stable sürümü 12 Mart 2026 tarihinde yayınlandı (released on March 12, 2026). Linear gibi büyük şirketler production build sürelerini 46 saniyeden 6 saniyeye düşürdüklerini açıkladı.
Peki neden bu kadar önemli? Çünkü modern web uygulamalarında build süresi doğrudan developer productivity'yi (geliştirici verimliliğini) etkiler. Günde 50 kez build alan bir ekip için 40 saniye fark, günde yaklaşık 33 dakika tasarruf demek. Yılda yüzlerce saate ulaşan bir kazanım.
Rolldown, VoidZero ekibi tarafından geliştirilen Rust dilinde yazılmış modern bir JavaScript bundler'dır (JavaScript bundler written in Rust). Native hızda çalışır ve esbuild seviyesinde performans verir. Benchmark sonuçlarına göre Rollup'a kıyasla 10-30x daha hızlı (10-30x faster than Rollup).
Rolldown'ın temel avantajları:
Vite 7 (eski): Dev: esbuild (Go) Production: Rollup (JavaScript) CSS Min: esbuild JS Transform: esbuild Vite 8 (yeni): Dev + Prod: Rolldown (Rust) CSS Min: Lightning CSS (Rust) JS Transform: Oxc (Rust)
Alesta Web olarak şu tespiti yapıyoruz: Tüm araç zinciri Rust'a geçti. Bu, sadece bir hız iyileştirmesi değil — bellek kullanımı, paralelleştirme ve uzun vadeli sürdürülebilirlik açısından da büyük bir kazanım.
Gerçek dünya benchmark'ları üzerinden bakalım. Aşağıdaki tablo, farklı boyutlarda projelerin Vite 7 ve Vite 8 üzerindeki build sürelerini karşılaştırıyor (real-world benchmarks).
| Proje Tipi | Vite 7 Süre | Vite 8 Süre | Kazanç / Speedup |
|---|---|---|---|
| Küçük SPA (~3 MB) | 15 saniye | 3 saniye | 5x daha hızlı |
| Orta ölçek (Linear) | 46 saniye | 6 saniye | 7.6x daha hızlı |
| Büyük monorepo | 3-5 dakika | 15-25 saniye | 10-15x daha hızlı |
| SvelteKit (8 site) | ~2 dk/site | ~12 sn/site | 10x daha hızlı |
Linear ekibi, üretim build'lerinin 46 saniyeden 6 saniyeye düştüğünü açıkladı (production builds dropped from 46s to 6s). CI/CD maliyetlerinde ayda binlerce dolarlık tasarruf sağlandığı raporlandı.
Full Bundle Mode özelliği yakında (coming soon) eklenecek. Bu mod ile dev server başlatma 3x daha hızlı, tam reload %40 daha hızlı ve network istekleri 10x daha az olacak.
Vite 8'e geçerken karşılaşacağınız breaking changes (kırıcı değişiklikler) aşağıda. Alesta Web rehberinde bu noktalara özellikle dikkat çekiyoruz çünkü migration sırasında en çok hata buradan geliyor.
Aşağıdaki değişiklikleri atlamayın (do not skip these changes). Mevcut vite.config.ts dosyanızı manuel olarak güncellemeniz gerekecek.
// vite.config.ts (Vite 7)
export default defineConfig({
build: {
rollupOptions: {
output: {
manualChunks: { vendor: ['react', 'react-dom'] }
}
}
}
})
// vite.config.ts (Vite 8)
export default defineConfig({
build: {
rolldownOptions: {
output: {
manualChunks: { vendor: ['react', 'react-dom'] }
}
}
}
})
Aynı şekilde worker.rollupOptions da worker.rolldownOptions olarak değişti.
Artık URL geçmek yerine id kullanmalısınız (pass an id instead of URL).
// ❌ Eski (Vite 7) - artık çalışmaz
import.meta.hot.accept('./module.js', (newModule) => {})
// ✅ Yeni (Vite 8) - id kullan
import.meta.hot.accept('module-id', (newModule) => {})
CSS minification için artık varsayılan olarak Lightning CSS kullanılıyor. esbuild'e dönmek isterseniz:
export default defineConfig({
build: {
cssMinify: 'esbuild' // eski davranış
}
})
JavaScript dönüşümü için artık Oxc (Rust tabanlı, esbuild'in halefi) kullanılıyor. Backward compatibility (geriye uyumluluk) için esbuild seçeneği hala çalışıyor ama otomatik olarak Oxc'ye dönüştürülüyor.
CommonJS modülleri import ederken bazı kodlar bozulabilir (some existing code may break). Acil çözüm için:
export default defineConfig({
legacy: {
inconsistentCjsInterop: true // geçici, deprecated
}
})
Önemli: Bu deprecated bir seçenek. Uzun vadede kodunuzu ESM standardına uyumlu hale getirmek en doğrusu.
Daha önce vite-tsconfig-paths gibi pluginlere ihtiyaç vardı. Artık Vite 8 native destekliyor:
// vite.config.ts
export default defineConfig({
resolve: {
tsconfigPaths: true // Vite 8'de yeni!
}
})
Alesta Web tavsiyesi: Bu özelliğin küçük bir performans maliyeti var. Eğer projenizde tsconfig path alias kullanmıyorsanız varsayılan olarak false bırakın.
TypeScript'in emitDecoratorMetadata seçeneği artık Vite 8'de otomatik destekleniyor. Angular, NestJS veya TypeORM kullanan projeler için büyük kolaylık.
Vite 8 ile birlikte built-in Vite Devtools geliyor. Debugging ve analysis için tarayıcıda ek bir panel:
Mikro frontend mimarilerinde kullanılan Module Federation, Vite 8'de native olarak destekleniyor. Webpack 5'ten geçiş yapan ekipler için büyük avantaj.
Modül bazında persistent cache (kalıcı önbellek) sayesinde tekrar build'ler ilk build'den dramatik şekilde daha hızlı.
Alesta Web olarak iki migration stratejisi öneriyoruz. Projenizin karmaşıklığına ve risk toleransına göre birini seçin (pick based on your project complexity).
Basit projeler için 5 adımda 1 saatten az süre alır (under 1 hour for simple projects).
# npm npm install vite@^8.0.0 --save-dev # pnpm pnpm add -D vite@^8.0.0 # yarn yarn add -D vite@^8.0.0 # bun bun add -d vite@^8.0.0
// Tüm rollupOptions → rolldownOptions
// Tüm worker.rollupOptions → worker.rolldownOptions
export default defineConfig({
build: {
rolldownOptions: { // değişti
output: {
manualChunks: { /* ... */ }
}
}
}
})
npm run dev # Beklenen çıktı: # VITE v8.0.0 ready in 234 ms # ➜ Local: http://localhost:5173/
npm run build # Süreyi karşılaştır: # Önce: 46s (Vite 7) # Sonra: 6s (Vite 8) ✅
npm run preview # Localhost'ta production build'i test et # Tüm sayfaları gez, console hatası var mı kontrol et
Büyük projeler veya custom plugin kullananlar için önerilen yol (recommended for complex projects).
rolldown-vite paketini kullanarak Rolldown'ı test etAlesta Web ekibi olarak büyük projelerde (50+ dependency) her zaman aşamalı yaklaşımı tavsiye ediyoruz. Bir kez başımıza şöyle bir olay geldi: Doğrudan upgrade sonrası 3 saat plugin sorunu çözmeye çalıştık. Aşamalı yaklaşım olsa 30 dakikada hallederdik.
// Çözüm: vite.config.ts'de // rollupOptions → rolldownOptions // Otomatik bulup değiştirmek için: sed -i 's/rollupOptions/rolldownOptions/g' vite.config.ts
// Eski plugin kullanıyorsa:
npm install esbuild --save-dev
// Modern alternatif (önerilen):
import { transformWithOxc } from 'vite'
// Yerine yeni Oxc API'sini kullan
// "default is not a function" hatası alıyorsanız:
// Geçici çözüm:
export default defineConfig({
legacy: { inconsistentCjsInterop: true }
})
// Kalıcı çözüm: import'ları ESM'e dönüştürün
// import pkg from 'cjs-module' yerine
// import * as pkg from 'cjs-module'
// import.meta.hot.accept('./url.js', cb) artık çalışmaz
// Yeni kullanım:
if (import.meta.hot) {
import.meta.hot.accept('module-id', (newModule) => {
// ...
})
}
Vite 8'e geçtikten sonra mutlaka staging ortamında tam regresyon testi yapın. Özellikle dynamic imports, code splitting ve asset URL'leri kontrol edin (test dynamic imports, code splitting and asset URLs). Alesta Web olarak bir müşterimizde production'a direkt push yaptığımızda asset URL'lerinde hash farkı yüzünden 4 saat downtime yaşadık. Tekrarlamayın.
İyi haber: Rolldown, Rollup ile aynı plugin API'sini destekliyor (Rolldown supports the same plugin API as Rollup). Bu yüzden ekosistemdeki çoğu plugin değişiklik gerektirmeden çalışıyor (most plugins work out of the box).
@vitejs/plugin-react — Direkt çalışır@vitejs/plugin-vue — Direkt çalışır@vitejs/plugin-svelte — Direkt çalışırvite-plugin-pwa — v0.20+ uyumluunplugin-auto-import — Direkt çalışırunplugin-icons — Direkt çalışır@tailwindcss/vite — v4+ ile mükemmelvite-tsconfig-paths — Artık gereksiz, native destek var (no longer needed)transformWithEsbuild kullanan eski pluginler → transformWithOxcAlesta Web uzmanları olarak şu kontrolü öneriyoruz: npm ls vite ile tüm bağımlılıkları listele, her plugin'in Vite 8 uyumluluğunu npm sayfasında veya GitHub'da kontrol et. 5 dakikalık bir iş, saatlerce sorun engelliyor.
Şu durumlarda Vite 8'e geçmek mantıklı:
Şu durumlarda biraz beklemek daha mantıklı olabilir:
rolldown-vite beta test ortamı kurmadıysanızVite 8 + Rolldown, frontend dünyasında Rust dönüşümünün son halkası. Webpack 5 sonrası belki de en büyük build tool yeniliği. Alesta Web olarak müşteri projelerimizin %80'ini ilk ayda Vite 8'e taşıdık ve ortalama %75 build süresi azalması gözlemledik.
Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan derlenmiştir (information from reliable sources):
Alesta Web olarak tüm bu bilgileri kendi test ortamlarımızda doğruladık (verified in our test environments). Müşteri projelerinde başarıyla uyguladık.
Artık projenizde Vite 8 + Rolldown çalışıyor (Vite 8 with Rolldown is running). Build süreniz 10-30x daha hızlı, dev ortamınız daha tutarlı, plugin ekosisteminiz korunmuş. Alesta Web rehberi ile bu kritik upgrade'i sorunsuz tamamladınız.
Hızlı Özet / Quick Summary:
Faydalı Linkler / Useful Links:
© 2026 Alesta Web — Tüm hakları saklıdır. Bu rehber alestaweb.com içerik üretim ekibi tarafından hazırlanmıştır.