- Web geliştirme araçlarını her proje için ayrı ayrı bir araya getirme yükünü azaltmak amacıyla Vite+, runtime, paket yöneticisi, derleme, test ve denetim araçlarını tek bir giriş noktasında topluyor
vp dev, vp check, vp test, vp build, vp pack, vp run; Vite 8, Vitest, Rolldown, tsdown, Oxlint, Oxfmt ile bağlanarak tutarlı bir komut sistemi sunuyor
- Alfadan bu yana 12’den fazla sürüm ve 500’den fazla PR sonrasında önbellekleme, migration, organizasyon şablonları, kurumsal ağlara uyum ve çapraz platform kararlılığı iyileştirildi
- Açık depolar baz alındığında 1.300’den fazla depo
vite-plus’a bağımlı; Dify, critical, BlockNote, vinext, îles, Inkline, npmx gibi projeler hâlihazırda kullanıyor
- Henüz 1.0 öncesi aşamada olduğundan uzak önbellekleme, GitLab CI/CD desteği, framework ve eklenti uyumluluğu, migration, dağıtım kanalları ve tanılama iyileştirmeleri hâlâ yapılacaklar arasında
Vite+’ın sunduğu entegre toolchain
- Vite+, web geliştirme için entegre bir toolchain olarak beta sürümüyle yayımlandı
- Tek bir giriş noktasından runtime ve paket yöneticisini yönetiyor; birden fazla frontend aracını test edilmiş bir stack olarak birlikte sunuyor
- MIT lisanslı, tamamen açık kaynaklıdır ve belirli bir framework’e bağlı değildir
- CLI, kütüphane, web uygulaması gibi çeşitli web projelerinde kullanılabilir
- Yeni projeler
vp create, mevcut projeler ise vp migrate ile başlar
Aynı komutlarla geliştirme, denetim ve derleme çalıştırma
- Vite+, her depoda farklı araç kombinasyonları ve komutları öğrenmek yerine aynı komut sisteminin kullanılacak şekilde tasarlandı
- Başlıca komutlar şunlar
vp dev: Vite 8 tabanlı, hot module replacement içeren geliştirme sunucusunu başlatır
vp check: Oxfmt formatlama, Oxlint lint ve tip denetimini tek seferde çalıştırır
vp test: Vitest tabanlı unit testleri çalıştırır
vp build: Vite 8 tabanlı production derlemesi yapar
vp pack: tsdown tabanlı olarak kütüphaneyi bundle eder ve en iyi pratikleri içerir
vp run: Yerleşik monorepo farkındalığı olan görev çalıştırıcıyla npm script’lerini veya görevleri çalıştırır ve akıllı önbellekleme kullanır
- Ekip ve codebase büyüdükçe şu avantajlar artar
- Araç sürümleri hizalanır
- Yapılandırma paylaşımı kolaylaşır
- Yeni katkı sağlayanların kurulum adımları azalır
- CI, yerel geliştirmeyle aynı komutları çalıştırır
- Toolchain’i tekrar tekrar elle birleştirmek istemeyen geliştiricilere ve projeler genelinde tutarlı yapılandırma isteyen ekiplere yöneliktir
- Vite+, Vite ekosisteminin yerine geçmez
- Vite eklentileri Vite eklentisi olarak kalmaya devam eder
- Projeler içeride istedikleri paket yöneticisini kullanmaya devam edebilir
- Vite+, bu öğelerin tek bir toolchain gibi çalışmasını sağlayan bir entegrasyon katmanı sunar
Alfadan betaya kadar değişenler
- Vite+ alfasından bu yana gerçek projelerdeki testlerden geçerek 12’den fazla sürüm yayımlandı ve 500’den fazla PR birleştirildi
- Başlıca iyileştirmeler şöyle
- Daha akıllı önbellekleme:
vp run, otomatik veri takibini Vite’ın raporladığı metadata ile birleştirerek girdiler, çıktılar ve ortam değişkenleri elle listelenmese bile build cache’in doğru çalışmasını sağlar
- Migration iyileştirmeleri:
vp migrate, çeşitli uygulama yapılandırmalarını işler ve agent’lar için migration prompt’u da sunar
- Kurumsal özellikler: Organizasyon şablonları ile ekipler arasında yapılandırmayı standartlaştırır; proxy ve custom CA farkındalıklı HTTP sayesinde kurumsal proxy ve firewall arkasında da
vp çalıştırılabilir
- Çapraz platform:
vp, başlıca işletim sistemleri ve shell’lerde daha iyi çalışacak şekilde güçlendirildi
- Rötuş ve iyileştirmeler:
vite-plus’a 180’den fazla düzeltme ve iyileştirme yansıtıldı
- Ayrıntılı değişiklikler Vite+ release geçmişinde görülebilir
Birlikte gelişen temel araçlar
- Vite+ geliştirilirken temel araçlar da iyileşmeye devam etti
- Alfadan bu yana başlıca değişiklikler şöyle
Gerçek kullanım örnekleri
vite-plus’a bağımlı 1.300’den fazla açık depo var; buna kapalı projeler ve global CLI kurulumları dahil değil
- Vite+ farklı proje türlerinde kullanılıyor
- Dify: LLM uygulamaları geliştirmeye yönelik açık kaynak platform
- critical: Addy Osmani’nin framework bağımsız critical-path CSS aracı
- BlockNote: React için blok tabanlı, Notion tarzı rich text editörü
- vinext: Vite tabanlı, Next.js uyumlu drop-in framework
- zerobyte: TanStack ve React ile yapılmış, self-hosting kullanıcıları için yedekleme otomasyonu
- îles: Vue için partial hydration islands site oluşturucu
- agentsview: Svelte ile yapılmış, coding agent’lar için local-first oturum arama ve analiz aracı
- Inkline: Vue, React, Svelte, Angular, Solid, Qwik, Astro destekleyen UI component kütüphanesi
- npmx: Nuxt tabanlı açık kaynak npm registry tarayıcısı
- npmx’ten Daniel Roe, Vite+’ın geliştirici deneyimini hızlı tuttuğunu, CI ve review süreçlerini de hızlandırdığını belirtiyor
1.0’a kadar kalan işler
- Vite+ kararlı olsa da henüz tamamlanmış aşamada değil; entegre toolchain’in gerekli özellikleri karşılaması durumunda benimsenmesi öneriliyor
- 1.0’a kadar odaklanılacak başlıklar şöyle
- Vite Task olan
vp run için uzak önbellekleme uygulaması
- GitLab CI/CD için
setup-vp eklenmesi
- Vite framework’leri ve eklentileri genelinde uyumluluğun iyileştirilmesi
- Daha fazla migration hedefinin desteklenmesi
- Resmî Homebrew formula gibi dağıtım kanallarının eklenmesi
- Dokümantasyon ve tanılamaların daha net hâle getirilmesi
- 1.0 sürümü öncesinde kalan uyumluluk boşluklarını azaltmak için topluluk geri bildirimleri önceliklendiriliyor
Kurulum ve migration
- Global
vp komutu macOS/Linux’ta şu komutla kurulur
curl -fsSL https://vite.plus | bash
- Windows’ta şu PowerShell komutu kullanılır
irm https://vite.plus/ps1 | iex
- Yeni proje oluşturmak için şu komut kullanılır
vp create
- Mevcut bir Vite projesinde Vite+’ı denemek için şu komut kullanılır
vp migrate
vp migrate değişiklik planını gösterir, ancak karmaşık projelerde elle takip çalışmaları gerekebilir
- Production projelerinde Vite+’ı devreye almadan önce migration rehberi okunmalıdır
- Özellikle mevcut projeleri migrate eden geliştiricilerden, framework ve eklenti yazarlarından, büyük depoların bakımını yapan ekiplerden geri bildirim isteniyor
- İlgili kanallar
1 yorum
Hacker News görüşleri
Vite'ı gerçekten seviyorum ama diğer araçların ne olduğunu hiç bilmiyorum
Bir an başımı eğip çalışmaya dalmışken frontend araç ekosistemi birden evrimleşmiş; sıkıcı ama iyi çalışan stacke doğru bir akım olup olmadığını merak ediyorum
oxlint, eslint'in yerini alırken yapılandırma dosyası formatıyla uyumlu ve JavaScript ile yazılmadığı için çok hızlı. biome'u da denedim ama oxlint'in daha fazla kuralı vardı ve eslint uyumluluğu daha iyiydi
oxfmt prettier'ın yerini alıyor ve JavaScript ile yazılmadığı için daha hızlı; rolldown ise rollup'ın yerini alıyor, uyumlu ama çok daha hızlı. Yeni projelerde zaten çoğunlukla bu araçları kullanıyorum
Eskiden farklı açık kaynak projelerinden araçları, her biri farklı ayarlarla ve güncelleme döngüleriyle kullanmak gerekiyordu; artık tek ve basit bir toolchain olarak ele alınıyor
Vite+ fiilen “sıkıcı ama iyi çalışan” stack; performansı da daha iyi ve daha az yapılandırma gerektiriyor
eslint → oxlint, prettier → oxfmt gibi Rust ile yeniden yazarak hızlandırıyorlar; webpack → Vite ise zaten yeterince yaygın kullanıldığı için benimseniyor
rolldown → tsdown TypeScript desteği ekliyor, jest → vitest ise Vite ile iyi uyum sağlıyor
Son 10 yılda yerleşmiş pratikleri alıp TypeScript desteği, Rust tabanlı performans ve birlikte çalışabilirliği tek pakette topluyor diyebiliriz
Deno da kullanıyorum; hangi yönünün faydalı olduğunu merak ediyorum
Vite, Vitest, Oxlint ve Oxfmt'yi seviyorum; yeni projelerin çoğunda önce bu tarafa bakıyorum
Umarım bu ekip yeterli finansmanı sağlar da en azından önümüzdeki 10 yıl boyunca geliştirmeye devam edebilir
Eski bir projeyi açıp Gulp, Grunt, webpack ve birbirinden kopuk başka araçların karmakarışık durduğunu görmekten çok daha iyi. Böyle bir projeyi de yeni stacke taşıdım
Asıl mesele, Cloudflare'ın bu insanların Vite ve Vite+ özellikleri geliştirmeye devam etmesine izin verip vermeyeceği. Çünkü bunlar yalnızca Cloudflare'a değil, tüm bulut platformlarına fayda sağlayan özellikler
https://blog.cloudflare.com/voidzero-joins-cloudflare/
Özellikle sunucu tarafı render etmenin olduğu full-stack bir yapıysa daha da öyle; yalnızca frontend'e bakıp TypeScript'i çıkarırsanız oldukça kolaylaşıyor
Daha karmaşık durumlarda Vite+'ın yardımcı olup olmayacağını görmek gerekecek
Bence bu projenin daha iyi bir isim bulması gerekiyor
Aslında daha iyi bir Vite olmaktan çok başka araçlardan oluşan bir paket gibi, bu da epey kafa karıştırıcı
O dönemde Void Zero, Vite markası üzerinden gelir elde etmeye çalışıyor olabilir; ama artık Cloudflare tarafından satın alındığına göre buna da gerek kalmadı
Vite, Vitest, Rolldown, tsdown, Oxlint ve Oxfmt'yi büyük memnuniyetle kullanıyorum
Hard fork yaptığım paket de çok ve geri dönmek istemiyorum. Hepsi basitçe çalışıyor
İsimler kafa karıştırıyorsa önce Oxlint'e https://oxc.rs/docs/guide/usage/linter ve Rolldown'a https://rolldown.rs/ bakın
Son 6 ayda bunları devreye alırken tsconfig'te yalnızca çok küçük değişiklikler yaptım
Normalde antd6, echart, render motoru, jeo-uzamsal kütüphane gibi şeyler değilse yeni bir paketi alıp Claude ile düzenliyor, katı ve tutarlı bir tip sistemine uyduruyor, ardından Vite, tsconfig ve oxlint tercihlerime göre ayarlıyorum
Sonuç olarak kütüphane şişkinliği ya da tedarik zinciri saldırıları gibi sorunları sürekli takip etme ihtiyacı azalıyor; kodu okumak ve düzeltmek kolaylaşıyor
Vite, 2022~2026 arasındaki 4 yılda beş kez majör sürüm yükseltti: 3 → 4 → 5 → 6 → 7 → 8
Her seferinde kırıcı değişiklikler vardı ve geliştiricilerin migrasyon yapması gerekti; bu çok fazla. Üstelik sürüm 3'e kıyasla dramatik biçimde daha iyi de değil
Bu seviyede gereksiz değişimi ve sürekli karmaşayı geliştirme toolchain'inin geri kalanına da taşımak istemiyorum
Vite+ sonunda mevcut araçları soyutlanmış bir komut satırı arayüzüyle sarmalamaktan ibaretse, istediğim davranışı elde etmek için daha fazla dolaylı katmanı aşmam gerekecek demektir; bu yüzden henüz iyimser değilim
Büyük bir sorun hatırlamıyorum; her seferinde genel olarak buna değdi
Birkaç kırıcı değişiklik vardı ama görece izoleydi; bu sürümler arasındaki hız ve iyileştirmeler oldukça büyüktü
Ne tür kırılmalar yaşadığını merak ediyorum
Sunucu tarafı render etme ile ilgili eklenen özellikler büyük bir iyileştirmeydi
Var olmayan bir sorun hakkında sürekli şikâyet etmeyi bırakmalarını isterim. Bu araçları gerçekten kullanıp kullanmadığından bile şüpheliyim
Frontend’i, hatta JavaScript ekosistemini takip etmek gerçekten zor
Laravel ile çalıştığım günleri özlüyorum; keşke Laravel kullanan işler daha yüksek ücret verseydi
Yine de takip etmeye devam etmek gerekiyor ve sonuçlar da pek tatmin edici olmayabilir
Önceden kullanılanlar hâlâ çalışıyor
Laravel 6 zamanlarını gerçekten özlüyorum
uv’de işe yaramış bir yöntem olduğuna göre, yetkin bir ekip JavaScript’te de aynı şeyi yapabilir gibi görünüyor
Bana göre çok bariz bir karşılaştırma noktası ve JavaScript ekosistemi için de çok sevindirici bir gelişme gibi geliyor
uv sayesinde Python ile çalışmak yeniden keyifli hâle geldi
Vite gibi Node build’leri için de kullanılıp kullanılamadığını, yoksa yalnızca tarayıcıya mı yönelik olduğunu merak ediyorum
Ancak
vite-plugin-nodekullanarak NestJS sunucusunda Vite’ı sorunsuz kullanıyorumÖrnek için bkz. https://github.com/leosuncin/nest-vite-example/blob/master/v...
Temelde kendinizi bir kütüphaneymiş gibi göstermeniz yeterli
Bu durumda Vite’ı geliştirme sunucusu olarak kullanmıyorum ama lint, formatlama, görev çalıştırma ve önbellekleme aynen duruyor
Avantajı ne? SEA’da obfuscation yapmak için mi?
Bunda da abonelik olup olmadığını merak ediyorum
İsminde “+” olunca temkinli oluyorum ve doğal olarak yanında abonelik geldiğini düşünüyorum
Baktığım kadarıyla öyle görünmüyor
Artık “$name+”, “$name’in abonelik hizmeti” anlamına güçlü biçimde kazınmış durumda
Astro ile birlikte kullanılıp kullanılamayacağını merak ediyorum