Skip to content

nvmrc Yapılandırması

Giriş

Birden fazla proje geliştirirken, her proje farklı bir Node.js sürümü gerektirebilir. Bu durumda, her proje için Node.js sürümünü belirlemek üzere terminalde nvm install ve nvm use komutlarını çalıştırarak sürümü kurmamız ve değiştirmemiz gerekir.

Ancak, her seferinde terminalde komutları manuel olarak çalıştırmak, özellikle proje sayısı arttıkça zahmetli hale gelir. Sürüm değiştirmeyi unutmak veya yanlış sürüme geçmek kolaydır ve bu, projenin başlatılamamasına veya çalışma zamanında hatalara neden olabilir.

İşte burada Node.js sürümlerini yönetmek ve aralarında otomatik olarak geçiş yapmak için bir yönteme ihtiyacımız var ve burada .nvmrc devreye girer.

.nvmrc Nedir?

Yukarıdaki açıklamadan, .nvmrc dosyasının projemiz için Node.js sürümünü yönetmek için kullanıldığını anlayabilirsiniz. Bu dosya çok basittir: sadece nvm tarafından tanınabilen bir Node.js sürümünü temsil eden metin içerir, örneğin v18.12.0.

.nvmrc dosyası nasıl kullanılır?

.nvmrc dosyasını içeriği Node.js sürüm numarası veya nvm tarafından anlaşılabilen başka bir metin olacak şekilde oluşturabilirsiniz. Detaylar için terminalde nvm --help yazabilirsiniz.

.nvmrc dosyasıyla, terminalde sürüm belirtmeden nvm use, nvm install, nvm exec, nvm run ve nvm which gibi komutları çalıştırdığınızda, .nvmrc dosyasında belirtilen sürüm kullanılacaktır.

.nvmrc dosyası oluşturma

Örnek olarak, mevcut dizinde nvm'nin 18.12 sürümünün en son sürümünü, en son LTS sürümünü veya en yeni Node.js sürümünü belirlemesi için echo komutunu kullanarak .nvmrc dosyası oluşturabilirsiniz:

bash
$ echo "18.12" > .nvmrc
# En son LTS sürümüne ayarla
$ echo "lts/*" > .nvmrc
# En yeni sürüme ayarla
$ echo "node" > .nvmrc

nvm use gibi komutlar, mevcut dizinden yukarı doğru dizin yapısını tarayarak .nvmrc dosyasını arar. Bu, .nvmrc dosyası olan bir dizinin herhangi bir alt dizininde nvm use gibi komutları çalıştırmanın hala o .nvmrc dosyasını kullanacağı anlamına gelir.

.nvmrc dosyası, nvm --help içinde listelenen <version> ile eşleşen içeriği içermeli ve ardından yeni bir satır gelmelidir. Sondaki boşluklara izin verilmez ve sondaki yeni satır gereklidir.

Aşağıdaki resimde gösterildiği gibi, v14.21.3'ten sonra boşluk yok, sadece satır sonu var.

nvmrc

Terminal shell ile derin entegrasyon

Shell'inizle derin entegrasyon sağlamak ve dizin değiştirirken otomatik olarak nvm'yi çağırmak için avn kullanabilirsiniz.

Daha hafif bir çözüm tercih ederseniz, aşağıdaki yöntemi kullanabilirsiniz.

.nvmrc dosyasına göre zsh terminalinde otomatik Node.js sürümü değiştirme

Aşağıdaki kodu $HOME/.zshrc dosyanıza ekledikten sonra, .nvmrc dosyası içeren bir dizine her girdiğinizde nvm use otomatik olarak çağrılacaktır. .nvmrc dosyasındaki dize, nvm'ye hangi Node.js sürümünün kullanılacağını söyler.

bash
# Ana dizine gidin ve .zshrc dosyasını düzenleyin
$ cd
$ vi .zshrc

.zshrc dosyasına yazılması gereken kod:

bash
# Bu kod segmentini .zshrc dosyasına kopyalayın
# bunu nvm başlatmasından sonra yerleştirin!
autoload -U add-zsh-hook
load-nvmrc() {
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

.zshrc dosyasını düzenledikten sonra, komutun geçerli olması için source .zshrc çalıştırın:

bash
$ source ~/.zshrc

.nvmrc dosyası olan bir projede, vscode içinde entegre terminali açtığınızda, nvm use komutunun otomatik olarak yürütüldüğünü ve komut satırında uygun çıktıyı göreceksiniz.

nvmrc

NVM - Windows, Linux ve macOS için Node Sürüm Yöneticisi