Node.js projeleri ile çalışırken birden farklı sürüm ile çalışmamız gerekebiliyor. Her projenin gereksinimleri farklı oluyor. Farklı sürümleri yönetmek için nvm (Node Version Manager - Nodejs Sürüm Yöneticisi) gibi güzel bir çözüm var. İşimizi kolaylaştıran ve bizi birçok dertten kurtaran güzel bir araç.

Nasıl kurulur

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

MacOS için yukarıdaki kodu terminale eklemek yeterli. Diğer işletim sistemler için nvm github sayfasında kurulum kısmına bakınız. Sonra terminali kapatıp açınca nvm kullanıma hazır.

Peki ihtiyacımız olan sürümü nasıl kuracağız. Kurabileceğimiz sürüm listesini

nvm ls-remote

komutunu terminale yazarak görebiliriz. Sonra buradan istediğimiz sürümü

nvm install 8.9.3

Yazmanız yeterli. Hemen nodejs sürümü yükleniyor ve kullanıma hazır hale geliyor.

Peki yüklü sürümler arasında nasıl geçiş yapıyoruz.

nvm use 6.9.4

Hop geçtik. Süper değil mi?

Yüklü nodejs sürümleri görmek için

nvm ls
         v4.4.2
->       v8.9.3
         system
default -> 8.9.3 (-> v8.9.3)
node -> stable (-> v8.9.3) (default)
stable -> 8.9 (-> v8.9.3) (default)
iojs -> N/A (default)
lts/* -> lts/carbon (-> v8.9.3)
lts/argon -> v4.8.7 (-> N/A)
lts/boron -> v6.12.2 (-> N/A)
lts/carbon -> v8.9.3

Peki her projeler arası geçişte böyle kod mu yazacağız? Onun içinde çözüm var.

Her proje klasörüne hangi nodejs sürümünü kullandığınıza dair bir nvm konfigürasyon dosyası eklemeniz yeterli.

/ .nvmrc (dosya adi)
6.94

Terminali kapatıp açın artık bu projede nvm use ile her geçişti nodejs sürümünü yazmanıza gerek yok.

Sonuç

Daha önce defalarca ismini duymama rağmen nvm ile bir sorunun çözümünü ararken kurma gereği duydum. Parceljs kurarken yaşadığım bir problemi çözmek için, sorunun çözümüne ilaç gibi geldi.

Kalın sağlıcakla.

Kaynaklar

Avatar Popout Efekti

Avatar Popout Efekti uygulaması Devamını oku

Kapsayıcı sorguları (container query)

29 January 2024 tarihinde yayınlandı.

Renk geçişli ve Hareketli kenar çizgileri

22 January 2024 tarihinde yayınlandı.