Skip to content

Node.js Versiyon Yönetimi

fnm, birden fazla Node.js versiyonu arasında kolayca geçiş yapmanıza olanak tanıyan güçlü versiyon yönetimi özellikleri sağlar.

Temel İşlemler

Kurulu Versiyonları Görüntüleme

bash
fnm list

Çıktı örneği:

* v20.10.0 default
  v18.19.0
  v16.20.2
  • * şu anda kullanılan versiyonu gösterir
  • default varsayılan versiyonu gösterir

Mevcut Versiyonu Görüntüleme

bash
fnm current

Versiyon Değiştirme

bash
# Belirli bir versiyona geç
fnm use 20

# Belirli bir tam versiyona geç
fnm use 20.10.0

# Versiyon kurulu değilse, otomatik kur ve geç
fnm use 18 --install-if-missing

Varsayılan Versiyon

Varsayılan Versiyon Ayarlama

bash
fnm default 20

Varsayılan versiyon:

  • Yeni bir terminal oturumu başladığında kullanılan versiyon
  • Versiyon dosyası olmadığında kullanılan versiyon

Varsayılan Versiyonu Görüntüleme

bash
fnm default

Versiyon Takma Adları

Takma adlar, versiyonlar için akılda kalıcı isimler ayarlamanıza olanak tanır.

Takma Ad Oluşturma

bash
# Versiyon için takma ad ayarla
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 old

Takma Ad Kullanma

bash
# Takma ad aracılığıyla versiyon değiştir
fnm use default
fnm use legacy

Takma Ad Silme

bash
fnm unalias legacy

Otomatik Versiyon Değiştirme

fnm, proje dizinine göre Node.js versiyonlarını otomatik olarak değiştirebilir.

Otomatik Değiştirmeyi Etkinleştirme

Kabuk yapılandırmasına --use-on-cd ekleyin:

bash
eval "$(fnm env --use-on-cd)"

Versiyon Dosyası Oluşturma

Proje kök dizininde bir .node-version veya .nvmrc dosyası oluşturun:

bash
# .node-version kullanma (önerilen)
echo "20" > .node-version

# Veya .nvmrc kullanma (nvm ile uyumlu)
echo "v18.17.0" > .nvmrc

Versiyon Dosyası Formatı

.node-version aşağıdaki formatları destekler:

20           # Ana versiyon, en son 20.x.x kullan
20.10        # Alt versiyon, en son 20.10.x kullan
20.10.0      # Tam versiyon
lts/iron     # LTS versiyon adı

Versiyon Dosyası Ayrıştırma Stratejisi

fnm iki versiyon dosyası ayrıştırma stratejisini destekler:

bash
# local (varsayılan) - Sadece mevcut dizinde ara
fnm env --version-file-strategy=local

# recursive - Üst dizinleri özyinelemeli olarak ara
fnm env --version-file-strategy=recursive

package.json engines Desteği

fnm, package.json dosyasındaki engines.node alanını okuyabilir:

json
{
  "engines": {
    "node": ">=18.0.0"
  }
}

Varsayılan olarak etkindir, ortam değişkeni aracılığıyla devre dışı bırakılabilir:

bash
export FNM_RESOLVE_ENGINES=false

Versiyon Yönetimi En İyi Uygulamaları

1. Proje Seviyesi Versiyon Kilitleme

Her projede bir .node-version dosyası oluşturun:

bash
cd my-project
echo "20" > .node-version
fnm install
fnm use

2. Ekip İş Birliği

.node-version dosyasını Git'e ekleyin:

bash
git add .node-version
git commit -m "chore: add .node-version"

3. CI/CD Yapılandırması

CI/CD ortamlarında fnm kullanın:

yaml
# GitHub Actions
- name: Install fnm
  run: curl -fsSL https://fnm.vercel.app/install | bash

- name: Install Node.js
  run: fnm install && fnm use

4. Çoklu Versiyon Geliştirme

bash
# Birden fazla versiyon kur
fnm install 20
fnm install 18
fnm install 16

# Kolay geçiş için takma adlar ayarla
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old

# Farklı projelerde farklı versiyonlar kullan
cd project-new && fnm use current
cd project-old && fnm use legacy

Versiyonları Kaldırma

bash
# Belirli bir versiyonu kaldır
fnm uninstall 16.20.2

# Takma ad aracılığıyla kaldır (versiyonu ve ilgili tüm takma adları siler)
fnm uninstall old

Yaygın Sorunlar

Versiyon Değiştirmeden Sonra node Komutu Güncellenmiyor

Kabuk yapılandırmasının doğru olduğundan emin olun:

bash
# Node yolunu kontrol et
which node

# fnm dizinine işaret etmelidir
# ~/.fnm/node-versions/.../bin/node

Otomatik Değiştirme Çalışmıyor

  1. --use-on-cd'nin Kabuk yapılandırmasına eklendiğini doğrulayın
  2. Versiyon dosyasının var olduğunu doğrulayın
  3. Kabuk yapılandırmasını yeniden yükleyin

Versiyon Dosyası Önceliği

fnm versiyonları aşağıdaki sırayla arar:

  1. Komut satırında belirtilen versiyon
  2. .node-version dosyası
  3. .nvmrc dosyası
  4. package.json engines.node
  5. Varsayılan versiyon

İlgili Bağlantılar