deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

Vite+ ile pratikte: şişkin geliştirme bağımlılıkları ve AI ajanları için tek araç zinciri

Bir geliştirici, Vite+ araç zincirinin lint, format, test ve build komutlarını tek bir vp iş akışında topladığını, bir monorepo CI süresini dört dakikadan 50 saniyeye indirdiğini ve AI ajanlarının projeye alıştırmasını kolaylaştırdığını bildiriyor.

Vite+ ile pratikte: şişkin geliştirme bağımlılıkları ve AI ajanları için tek araç zinciri

Vite+ araç zincirini dört projede üç hafta boyunca kullanan bir geliştirici, bunun iki sorunu aynı anda çözdüğünü söylüyor: yayılıp gitmiş JavaScript geliştirme araçları ve bir depoya AI kodlama ajanlarının alıştırılmasının zorluğu. Hacker News ana sayfasına çıkan bir yazıda blogunda paylaşan Jan Michalek, yeni Vite uygulamaları için değişmez kuralının, bir AI asistanına verdiği ilk prompt'ta bile Vite+'dan bahsetmek olduğunu belirtiyor.

Tek giriş noktası, çok yerine

Michalek, 47 geliştirme bağımlılığı, yedi yapılandırma dosyası ve tek görevi ajanlara hangi komutun çalıştırılacağını açıklamak olan bir Markdown belgesi içeren bir projeyi anlatıyor. Kontrolleri ESLint, Prettier, TypeScript, bir test koşucusu ve package.json script'lerine dağılmıştı; bir noktada yerel makinesi ile CI hattı üretilen bir dosya konusunda anlaşamadı ve ajan ile pipeline farklı sonuçlar gördü.

Michalek'a göre Vite+, günlük görevleri tek bir vp binary'si altında topluyor: geliştirmeyi ve build'leri Vite hallediyor, testleri Vitest çalıştırıyor, lint ve biçimlendirmeyi Oxlint ve Oxfmt üstleniyor, kütüphaneleri tsdown derliyor ve görevleri Vite Task tanımlıyor. Bunların yapılandırması vite.config.ts içinde yaşayabiliyor; yine de package.json, tsconfig ve çerçeveye özgü dosyalar yerinde kalıyor. Her şeyin mutlak surette tek dosyada toplanmasının gerçek bir depoda tutup tutmayacağından şüpheli.

Yeni bir React uygulaması için iş akışı şöyle: vp create (standart create-vite şablonlarını kullanır), vp install, vp dev, vp check, vp test ve vp build. Global kurulum isteğe bağlı: Vite+ yerel bir bağımlılık olarak da çalışabiliyor ve vp install, npm veya pnpm'nin yerine geçmek yerine projenin halihazırda kullandığı paket yöneticisine devrediyor.

Ajanlar tahmin değil, sözleşme alıyor

Ajanın doğaçlama yapmasına izin vermek yerine Michalek, ona Vite+ dokümantasyonunda yer alan prompt'un uyarlanmış bir sürümünü veriyor. Onun varyantı güncel create rehberinin okunmasını, mevcut dosyaların üzerine yazılmamasını, tek bir lockfile korunmasını ve belirli bir neden olmadan ikinci bir linter veya formatter eklenmemesini gerektiriyor. Bu kurallar deneyimden geliyor: ajanı serbest bıraktığında elinde hem Prettier hem Oxfmt yapılandırılmış, üç lockfile ve güvenilmez bir CI ile kalmış.

Ayrıca depo'nun ajan talimatlarında bir tamamlama kontrol listesi saklıyor — kod değişikliklerinden sonra vp check, davranış değişikliklerinden sonra vp test, teslimden önce vp build — çünkü gelecekteki bir ajan oturumunun geçmiş konuşmalar hakkında hafızası yok. Yerel talimatların ve Git hook'larının atlanabileceğini belirtiyor; bu yüzden aynı kontroller CI'da da çalışıyor ve gözetimsiz ajan deneylerinde bile birleştirmeden önce insan incelemesi onun sorumluluğunda kalıyor.

Sayılar, uyarılarla birlikte

Bir monorepo'yu yeni iş akışına geçirdikten sonra Michalek, CI süresinin dört dakikadan 50 saniyeye düştüğünü, pre-commit kontrolünün ise 11 saniyeden ikinin altına indiğini bildiriyor. Koştuğu bir GitHub Actions benchmark'ı Vite+ ile 1.356 saniyede, klasik araç zinciriyle 10.441 saniyede tamamlandı. Bunların kontrollü bir karşılaştırma değil, kendi projelerinden sonuçlar olduğunu ve kazanımların neyin çalıştığına ve hangi dosyaların kontrol edildiğine bağlı olduğunu açıkça belirtiyor.

Destekleyici komutlar arasında değişen dosyaların hızlı kontrolü için vp staged, Git hook yönetimi için vp hooks ve bir projede ya da global olarak hangi araç sürümlerinin aktif olduğunu gösteren vp toolchain yer alıyor.

Pürüzler

Michalek, daha eski bir monorepo'nun ESLint, Prettier ve tsup kurulumunu dönüştürmek için vp migrate'ın yaklaşık dört dakika gerektirdiğini ve kendisi için hiçbir şeyin kırılmadığını bildiriyor — ama sonucun eski lint kuralları, testler, hook'lar ve build çıktısıyla karşılaştırılması gerektiğini, eklentilerin ve özel kuralların hâlâ elle çalışma gerektirebileceğini vurguluyor.

Daha ince bir tuzak, yerleşik komutlar ile proje script'leri arasındaki fark: vp build bir Vite uygulama build'i gerçekleştirirken, vp run build bir package.json script'ini ya da o adda bir görevi çalıştırır. Bir Next.js projesinde ajan, vp build'in next build'in yerine geçtiğini varsynamamalı; aynı ayrım vp dev ile vp run dev için de geçerli.

Sürüm yönetimi de kafa karışıklığına davet çıkarıyor. Michalek'a göre vp upgrade her projedeki yerel vite-plus paketini değil, global CLI'yı güncelliyor; bu yüzden ajan talimatlarında bunu açıkça belirtiyor. vp env Node.js ve paket yöneticisi sürümlerini yönetebiliyor — üç projesi üç farklı Node sürümünde olan Michalek için kullanışlı — ve vp env off ile devre dışı bırakılabiliyor. Monorepo'larda vite.config.ts içinde tanımlanan görevler için önbellekleme otomatiktir ama package.json script'leri için --cache gibi bir bayrakla etkinleştirilmelidir, örneğin vp run --cache build.

Neden önemli

AI kodlama ajanları, insan geliştiricilerin uzun süredir sessizce katlandığı bir maliyeti büyütüyor: her ek yapılandırma dosyası ve belirsiz script, bir modelin çıkarım yapması gereken bir şey haline geliyor ve yanlış çıkarımlar yerel kontrollerle CI arasında sapma yaratıyor. Öngörülebilir tek bir komut seti sunan bir araç zinciri, ajanlara ve insanlara ortak bir "tamamlandı" tanımı veriyor. Michalek'ın raporu kazancın ölçülebilir olabileceğini gösteriyor — onun durumunda CI'dan dakikalar kısıldı — ama uyarıları sayıları kadar önemli: göçler hâlā inceleme gerektiriyor, komut anlamlarının hâlâ uç durumları var ve hiçbir araç zinciri, birleştirmeden önce birinin bakması ihtiyacını ortadan kaldırmıyor.

  • #vite
  • #ai-agents
  • #developer-tools
  • #javascript
  • #build-tools

İlgili yazılar