Skip to content

Nasıl Çalışır?

Volta'nın JavaScript araçlarını yönetmedeki sorunsuz yaklaşımı, sahne arkasında çalışan akıllı bir mimariye dayanır. İşte Volta'nın sihrini nasıl yaptığına ilişkin bir açıklama:

Shim Mimarisi

Volta'nın temelinde, komutları yakalayan ve bunları uygun araç sürümlerine yönlendiren bir "shim" mimarisi vardır:

  1. Volta'yı kurduğunuzda, PATH ortam değişkeninize bir dizin ekler (Unix sistemlerinde genellikle ~/.volta/bin veya Windows'ta %USERPROFILE%\.volta\bin)
  2. Bu dizin, node, npm ve yarn gibi yaygın araçlar için hafif çalıştırılabilir shim'ler içerir
  3. node gibi bir komut çalıştırdığınızda, sistem önce PATH'inizde Volta'nın shim'ini bulur
  4. Shim, mevcut dizininize dayanarak aracın hangi sürümünü kullanacağını belirler
  5. Volta ardından orijinal komut bağımsız değişkenlerinizle aracın doğru sürümünü çalıştırır

Bu mimari, Volta'nın özel komutlar çalıştırmanızı gerektirmeden araç sürümleri arasında şeffaf bir şekilde geçiş yapmasını sağlar.

Proje Tespiti

Bir proje dizininde bir komut çalıştırdığınızda, Volta hangi araç sürümlerini kullanacağını otomatik olarak belirler:

  1. Volta, mevcut dizininizde bir package.json dosyası arar
  2. Bulursa, araç sürümlerini belirten bir volta bölümü olup olmadığını kontrol eder
  3. package.json bulunamazsa, Volta bir tane bulana kadar üst dizinlerde arama yapar
  4. Proje yapılandırması bulunamazsa, Volta varsayılan araç sürümlerinizi kullanır

Bu proje tespiti anında ve şeffaf bir şekilde gerçekleşir; herhangi bir manuel müdahale gerektirmeden projeler arasında geçiş yapmanıza olanak tanır.

Araç Kurulumu ve Yönetimi

Volta ile araç kurduğunuzda, merkezi bir konumda saklanırlar:

~/.volta/
├── bin/           # Shim'leri içerir
├── tools/
│   ├── node/      # Node.js kurulumları
│   ├── npm/       # npm kurulumları
│   ├── yarn/      # Yarn kurulumları
│   └── image/     # Paket ikili dosyaları
└── ...

Bu yapı Volta'ya şunları sağlar:

  1. Her aracın birden fazla sürümünü aynı anda kurulu tutmak
  2. Yeniden kurulum yapmadan sürümler arasında anında geçiş yapmak
  3. Kurulumları tüm projeleriniz arasında paylaşmak
  4. Farklı araçlar ve sürümler arasında temiz bir ayrım sürdürmek

Genel Paket Yönetimi

Volta'nın genel paketleri ele alması özellikle yenilikçidir:

  1. Bir paketi genel olarak kurduğunuzda (ör. npm install -g typescript), Volta:

    • Paketi varsayılan Node.js sürümünüzü kullanarak kurar
    • ~/.volta/bin içinde paketin ikili dosyaları için bir shim oluşturur
    • Paketin hangi Node.js sürümüyle kurulduğunu kaydeder
  2. Paketin ikili dosyasını çalıştırdığınızda (ör. tsc):

    • Volta'nın shim'i komutu yakalar
    • İkili dosyayı çalıştırmak için kaydedilen Node.js sürümünü kullanır
    • Bu, mevcut projenizin hangi Node.js sürümünü kullandığından bağımsız olarak gerçekleşir

Bu yaklaşım, sürüm çakışmalarının tipik sorunları olmadan genel paket kurulumunun kolaylığını sağlar.

Platforma Özel Uygulamalar

Volta, en iyi yerel deneyimi sağlamak için her platformda farklı şekilde uygulanmıştır:

  • Unix sistemleri (macOS, Linux): Çalıştırılabilir shim'ler ve shell profil değişiklikleri kullanır
  • Windows: Çalıştırılabilir shim'ler kullanır ve kullanıcının Path ortam değişkenini değiştirir

Tüm durumlarda, Volta mevcut ortamınız ve araçlarınızla sorunsuz entegre olacak şekilde tasarlanmıştır.

Performans Hususları

Volta performans göz önünde bulundurularak oluşturulmuştur:

  1. Hız ve güvenilirlik için Rust ile yazılmıştır
  2. Shim'ler komut çalıştırmaya minimum ek yük ekler
  3. Araç değiştirme anında gerçekleşir
  4. Sürümleri değiştirirken shell yeniden yüklemesi gerekmez

Performansa bu odaklanma, geliştirme iş akışınızda herhangi bir yavaşlama fark etmeden Volta'yı kullanabileceğiniz anlamına gelir.

Volta'nın kaputun altında nasıl çalıştığını anlayarak, JavaScript araç yönetimi konusundaki sorunsuz yaklaşımını daha iyi değerlendirebilirsiniz. Sistem, her proje için doğru araç sürümlerini her zaman kullandığınızdan emin olurken yolunuzdan çıkmamak üzere tasarlanmıştır.

Released under the BSD 2-Clause License.