1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • 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

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

1 yorum

 
GN⁺ 3 시간 전
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

    • İçerilen araçlar aslında oldukça iyi: vitest çok hızlı bir test runner; jest ya da Node'un yerleşik test runner'ı gibi birçok aracı denedikten sonra bile hoşuma gidiyor
      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
    • Diğer araçlar test, bundle alma, lint ve formatlama için
      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
    • Evet, tam olarak o yön
      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
    • Vite'ı denemeye çalıştım ama esbuild'e göre büyük bir avantajını hissedemeyince uzaklaştım
      Deno da kullanıyorum; hangi yönünün faydalı olduğunu merak ediyorum
    • Bu, bugünlerde öne çıkan en yeni sıkıcı ama iyi çalışan stack
  • 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

    • Bildiğim kadarıyla VoidZero, Cloudflare tarafından satın alındı; bu yüzden finansman sorun olmayacaktır
      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/
    • Vite, ESLint, Prettier, TypeScript ve React'in hepsini doğal biçimde birbirine uydurmak zor olabilir
      Ö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'a çeşitli şeyler eklendiği için “plus” birden fazla anlama gelebilir
  • 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

    • Tüm majör migrasyonları takip ettim ve oldukça sorunsuzdu
      Büyük bir sorun hatırlamıyorum; her seferinde genel olarak buna değdi
    • Ben de doğrudan migrasyon yaptım ama korkunç değildi
      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ü
    • Biz de o majör sürüm migrasyonlarının hepsini yaptık ama kırılma ya da büyük bir churn yaşamadık
      Ne tür kırılmalar yaşadığını merak ediyorum
    • Sürüm 3'e kıyasla pek bir şeyin iyileşmediğine katılmak zor
      Sunucu tarafı render etme ile ilgili eklenen özellikler büyük bir iyileştirmeydi
    • 4'ten 8'e tek seferde yükselttim ve yalnızca 5 satır ayar değiştirmem gerekti
      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

    • Laravel Livewire ve Alpine.js ile çalışmak istemezdim
      Yine de takip etmeye devam etmek gerekiyor ve sonuçlar da pek tatmin edici olmayabilir
    • Aslında illa takip etmek gerekmiyor
      Önceden kullanılanlar hâlâ çalışıyor
    • Katılıyorum. Biz de Laravel monolitimizi yavaş yavaş Python Lambda ile değiştiriyoruz
      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

    • Yorumlarda uv’den bahseden tek şeyin bu olması şaşırtıcı
      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

    • Vite kullandığı için kısıtları da Vite ile aynı
      Ancak vite-plugin-node kullanarak NestJS sunucusunda Vite’ı sorunsuz kullanıyorum
      Örnek için bkz. https://github.com/leosuncin/nest-vite-example/blob/master/v...
    • Node’u hedeflerken iyi çalışan, adeta sihirli ayarım burada: https://pastebin.com/ynz4B5X0
      Temelde kendinizi bir kütüphaneymiş gibi göstermeniz yeterli
    • CLI için de Vite+ kullanıyorum
      Bu durumda Vite’ı geliştirme sunucusu olarak kullanmıyorum ama lint, formatlama, görev çalıştırma ve önbellekleme aynen duruyor
    • Ne zaman biri Node kodunu bundle etmeyi önerse, kullanım senaryosunu hep merak ediyorum
      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

    • Benim de ilk düşündüğüm buydu
      Artık “$name+”, “$name’in abonelik hizmeti” anlamına güçlü biçimde kazınmış durumda
    • “MIT lisanslı tamamen açık kaynak” deniyor
    • Başta böyle bir plan olabilir ama sonrasında acqui-hire edilmiş gibi görünüyor
    • İsmi biraz endişe verici
  • Astro ile birlikte kullanılıp kullanılamayacağını merak ediyorum