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" > .nvmrcnvm 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.

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.
