Skip to content

fnm vs nvm

fnm ve nvm, her ikisi de popüler Node.js versiyon yöneticileridir. Bu rehber, seçim yapmanıza yardımcı olmak için onları ayrıntılı olarak karşılaştıracaktır.

Hızlı Karşılaştırma

Özellikfnmnvm
DilRustBash
Başlatma Hızı⚡ Son Derece Hızlı🐢 Daha Yavaş
Windows Desteği✅ Yerel Destek❌ nvm-windows gerekli
Çapraz Platform✅ Birleştirilmiş Deneyim⚠️ Farklı Uygulamalar
Versiyon Dosyaları✅ Çoklu Format✅ .nvmrc
Otomatik Değiştirme✅ Yerleşik⚠️ Hook'lar Gerekli
Paralel İndirme✅ Desteklenir❌ Desteklenmez
Bellek Kullanımı💚 Son Derece Düşük🟡 Orta
KurulumTek DosyaBetik Kurulumu

Ayrıntılı Karşılaştırma

Performans

fnm

bash
# Başlatma süresi: ~5-10ms
time fnm --version
# fnm 1.37.1
# real    0m0.008s

nvm

bash
# Başlatma süresi: ~100-500ms (Kabuk'a bağlı)
time nvm --version
# 0.39.0
# real    0m0.150s

Sonuç: fnm, nvm'den 10-50 kat daha hızlı başlar ve Kabuk başlatma süresini daha az etkiler.

Çapraz Platform Desteği

fnm

  • ✅ macOS (Intel & Apple Silicon)
  • ✅ Windows (Yerel Destek)
  • ✅ Linux (x64 & ARM64)
  • ✅ FreeBSD

Birleştirilmiş komutlar ve deneyim, farklı araçlar öğrenmeye gerek yok.

nvm

  • ✅ macOS / Linux
  • ❌ Windows için nvm-windows gerekli (ayrı proje)
  • ⚠️ Komutlar biraz farklı

Sonuç: fnm daha iyi çapraz platform tutarlılığı sağlar.

Versiyon Dosyası Desteği

fnm

bash
# Birden fazla formatı destekler
.node-version    # Önerilen format
.nvmrc           # nvm ile uyumlu
package.json     # engines.node alanı

nvm

bash
# Sadece bir formatı destekler
.nvmrc

Sonuç: fnm daha fazla format destekler, geçişi kolaylaştırır.

Otomatik Versiyon Değiştirme

fnm

bash
# Etkinleştirmek için bir satır
eval "$(fnm env --use-on-cd)"

Versiyon dosyası olan bir dizine girerken otomatik olarak değiştirir.

nvm

bash
# Kabuk hook'u yapılandırmak gerekli
# ~/.bashrc veya ~/.zshrc dosyasına ekleyin
autoload -U add-zsh-hook
load-nvmrc() {
  # ... karmaşık betik
}
add-zsh-hook chpwd load-nvmrc

Sonuç: fnm yapılandırması daha basit, hemen çalışır.

Komut Karşılaştırması

İşlemfnmnvm
Versiyon kurfnm install 20nvm install 20
Versiyon değiştirfnm use 20nvm use 20
Kuruluları listelefnm listnvm ls
Uzaktan listelefnm list-remotenvm ls-remote
Varsayılan ayarlafnm default 20nvm alias default 20
Mevcut versiyonfnm currentnvm current
Versiyon kaldırfnm uninstall 20nvm uninstall 20

Sonuç: Komutlar benzer, düşük geçiş maliyeti.

Kurulum Yöntemi

fnm

bash
# macOS/Linux
curl -fsSL https://fnm.vercel.app/install | bash

# Windows
winget install Schniz.fnm

# Homebrew
brew install fnm

Tek dosya kurulumu, karmaşık yapılandırma yok.

nvm

bash
# macOS/Linux
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Windows
# nvm-windows'ı ayrı olarak kurmak gerekli

Kabuk yapılandırma dosyalarını değiştirmeyi gerektirir.

Özellikler

fnm'e Özel Özellikler

  • 🚀 Paralel indirme, daha hızlı kurulum
  • 📦 Tek dosya, bağımlılık yok
  • 🔄 Özyinelemeli versiyon dosyası arama
  • 🎯 engines.node desteği
  • 📊 Daha iyi hata mesajları

nvm'e Özel Özellikler

  • 📚 Daha olgun ekosistem
  • 🏷️ Daha fazla LTS versiyon takma adı
  • 🔧 Daha ince ayarlı yapılandırma seçenekleri

Geçiş Rehberi

nvm'den fnm'ye Geçiş

1. fnm Kurulumu

bash
curl -fsSL https://fnm.vercel.app/install | bash

2. Kabuk Yapılandırmasını Güncelleme

bash
# nvm yapılandırmasını kaldır
# fnm yapılandırmasını ekle
eval "$(fnm env --use-on-cd)"

3. Versiyon Dosyası Uyumluluğu

.nvmrc dosyaları değişiklik olmadan çalışır, fnm tamamen uyumludur.

4. Node.js'yi Yeniden Kur

bash
fnm install --lts
fnm install 18

Seçim Önerileri

fnm Seçmelisiniz Eğer:

  • Windows kullanıyorsanız
  • Aşırı performansı hedefliyorsanız
  • Çapraz platform tutarlılığına ihtiyacınız varsa
  • Basit yapılandırma istiyorsanız
  • Apple Silicon Mac kullanıyorsanız

nvm Seçmelisiniz Eğer:

  • Yerleşmiş bir nvm iş akışınız varsa
  • Belirli nvm özelliklerine ihtiyacınız varsa
  • Proje nvm'ye özel davranışa bağlıysa

Özet

fnm, nvm'ye göre aşağıdaki avantajlara sahip modern bir Node.js versiyon yöneticisidir:

  1. Daha Hızlı - Rust ile oluşturulmuş, son derece hızlı başlatma ve yürütme
  2. Daha Basit - Tek dosya kurulumu, basit yapılandırma
  3. Daha Birleştirilmiş - Tutarlı çapraz platform deneyimi
  4. Daha Akıllı - Otomatik versiyon değiştirme, çoklu format desteği

Yeni projeler veya verimlilik hedefleyen geliştiriciler için fnm daha iyi bir seçimdir.

İlgili Bağlantılar