{"id":31039,"date":"2025-10-05T01:41:03","date_gmt":"2025-10-04T22:41:03","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31039"},"modified":"2025-10-05T01:41:03","modified_gmt":"2025-10-04T22:41:03","slug":"node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/","title":{"rendered":"Node Version Manager (NVM) ile Node.js&#8217;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Node Version Manager (NVM) ile Node.js&#8217;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi<\/h2>\n<p>Node.js, modern web geli\u015ftirmede ve sunucu taraf\u0131 uygulamalar\u0131nda vazge\u00e7ilmez bir teknoloji haline gelmi\u015ftir. JavaScript&#8217;in sunucu taraf\u0131nda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayarak geli\u015ftiricilere tek bir dil ile tam y\u0131\u011f\u0131n (full-stack) uygulama geli\u015ftirme imkan\u0131 sunar. Ancak, Node.js ekosistemi s\u00fcrekli geli\u015fmekte olup, yeni s\u00fcr\u00fcmler d\u00fczenli olarak yay\u0131nlanmaktad\u0131r. Bu durum, farkl\u0131 projelerin farkl\u0131 Node.js s\u00fcr\u00fcmlerine ba\u011f\u0131ml\u0131 olmas\u0131 gibi bir zorlu\u011fu da beraberinde getirir. Bir proje Node.js&#8217;in eski bir s\u00fcr\u00fcm\u00fcn\u00fc gerektirirken, ba\u015fka bir proje en son \u00f6zelliklerden faydalanmak i\u00e7in yeni bir s\u00fcr\u00fcm isteyebilir. \u0130\u015fte tam bu noktada, Node Version Manager (NVM) devreye girer ve geli\u015ftiricilerin bu karma\u015f\u0131kl\u0131\u011f\u0131 kolayca y\u00f6netmelerini sa\u011flayan g\u00fc\u00e7l\u00fc bir ara\u00e7 olarak \u00f6ne \u00e7\u0131kar.<\/p>\n<p>Bu kapsaml\u0131 makalede, NVM&#8217;in ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu, nas\u0131l kurulup kullan\u0131laca\u011f\u0131n\u0131 ve Node.js geli\u015ftirme s\u00fcrecinizi nas\u0131l daha verimli hale getirece\u011fini detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Node.js&#8217;in farkl\u0131 s\u00fcr\u00fcmleri aras\u0131nda sorunsuz ge\u00e7i\u015f yapabilme yetene\u011fi, modern geli\u015ftiriciler i\u00e7in kritik bir beceridir ve NVM, bu beceriyi edinmenin en etkili yoludur.<\/p>\n<h3>Neden Birden Fazla Node.js S\u00fcr\u00fcm\u00fcne \u0130htiya\u00e7 Duyar\u0131z?<\/h3>\n<p>Tek bir Node.js s\u00fcr\u00fcm\u00fcne ba\u011fl\u0131 kalmak, \u00f6zellikle birden fazla proje \u00fczerinde \u00e7al\u0131\u015fan veya a\u00e7\u0131k kaynakl\u0131 katk\u0131larda bulunan geli\u015ftiriciler i\u00e7in ciddi k\u0131s\u0131tlamalar yaratabilir. Birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc y\u00f6netme ihtiyac\u0131n\u0131n alt\u0131nda yatan temel nedenleri anlamak, NVM gibi ara\u00e7lar\u0131n de\u011ferini daha iyi kavramam\u0131z\u0131 sa\u011flar.<\/p>\n<h4>Proje Ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve Uyumluluk<\/h4>\n<p>Geli\u015ftiricilerin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en yayg\u0131n senaryolardan biri, farkl\u0131 Node.js s\u00fcr\u00fcmlerine ba\u011f\u0131ml\u0131 eski ve yeni projelerdir. \u00d6rne\u011fin:<\/p>\n<p>*   <strong>Eski Projeler (Legacy Projects):<\/strong> Baz\u0131 eski projeler, belirli bir Node.js s\u00fcr\u00fcm\u00fcyle (\u00f6rne\u011fin Node.js 10, 12 veya 14) test edilmi\u015f ve optimize edilmi\u015ftir. Bu projeleri daha yeni bir Node.js s\u00fcr\u00fcm\u00fcyle \u00e7al\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015fmak, beklenmedik hatalara, ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131na veya performans sorunlar\u0131na yol a\u00e7abilir. Bu projelerin bak\u0131m\u0131 veya yeni \u00f6zellik eklenmesi gerekti\u011finde, orijinal Node.js ortam\u0131na d\u00f6nmek zorunlu hale gelir.<br \/>\n*   <strong>Yeni Projeler ve Son Teknolojiler:<\/strong> Di\u011fer yandan, yeni geli\u015ftirilen projeler genellikle Node.js&#8217;in en son s\u00fcr\u00fcmlerinin sundu\u011fu performans iyile\u015ftirmelerinden, yeni dil \u00f6zelliklerinden ve g\u00fcvenlik g\u00fcncellemelerinden faydalanmak ister. Bu, geli\u015ftiricilerin en g\u00fcncel Node.js s\u00fcr\u00fcm\u00fcn\u00fc kullanmas\u0131n\u0131 gerektirir.<\/p>\n<p>Her iki durumda da, geli\u015ftiricinin ayn\u0131 anda farkl\u0131 Node.js s\u00fcr\u00fcmlerini etkin bir \u015fekilde y\u00f6netebilmesi gerekir.<\/p>\n<h4>Test Ortamlar\u0131<\/h4>\n<p>K\u00fct\u00fcphane veya framework geli\u015ftiricileri i\u00e7in, yazd\u0131klar\u0131 kodun farkl\u0131 Node.js s\u00fcr\u00fcmlerinde sorunsuz \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak hayati \u00f6nem ta\u015f\u0131r. Bir k\u00fct\u00fcphane, Node.js 16&#8217;da m\u00fckemmel \u00e7al\u0131\u015f\u0131rken, Node.js 14&#8217;te bir hata verebilir veya belirli bir \u00f6zelli\u011fi desteklemeyebilir. Bu t\u00fcr uyumluluk testleri i\u00e7in, geli\u015ftiricilerin h\u0131zl\u0131 ve kolay bir \u015fekilde farkl\u0131 Node.js ortamlar\u0131 aras\u0131nda ge\u00e7i\u015f yapabilmesi gerekir. NVM, bu test s\u00fcre\u00e7lerini basitle\u015ftirerek geli\u015ftiricilerin farkl\u0131 ortamlarda test senaryolar\u0131n\u0131 kolayca \u00e7al\u0131\u015ft\u0131rmas\u0131na olanak tan\u0131r.<\/p>\n<h4>Geli\u015ftirme ve \u00d6\u011frenme<\/h4>\n<p>Node.js \u00f6\u011frenen veya yeni \u00f6zelliklerini deneyen geli\u015ftiriciler i\u00e7in, farkl\u0131 s\u00fcr\u00fcmler aras\u0131nda ge\u00e7i\u015f yapabilme yetene\u011fi paha bi\u00e7ilmezdir. Yeni bir Node.js s\u00fcr\u00fcm\u00fc \u00e7\u0131kt\u0131\u011f\u0131nda, geli\u015ftiriciler mevcut projelerini etkilemeden bu yeni s\u00fcr\u00fcm\u00fc g\u00fcvenli bir \u015fekilde deneyebilir, yeni API&#8217;leri ke\u015ffedebilir ve potansiyel uyumluluk sorunlar\u0131n\u0131 \u00f6nceden tespit edebilirler. Bu, s\u00fcrekli \u00f6\u011frenmeyi ve adaptasyonu kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>Ekip \u00c7al\u0131\u015fmas\u0131 ve Ortam Tutarl\u0131l\u0131\u011f\u0131<\/h4>\n<p>Birden fazla geli\u015ftiricinin ayn\u0131 proje \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 ekiplerde, herkesin ayn\u0131 Node.js s\u00fcr\u00fcm\u00fcn\u00fc kullanmas\u0131 ortam tutarl\u0131l\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Farkl\u0131 geli\u015ftiricilerin farkl\u0131 Node.js s\u00fcr\u00fcmleriyle \u00e7al\u0131\u015fmas\u0131, &#8220;benim makinemde \u00e7al\u0131\u015f\u0131yor&#8221; sendromuna yol a\u00e7abilir ve hata ay\u0131klama s\u00fcre\u00e7lerini karma\u015f\u0131kla\u015ft\u0131rabilir. NVM, <code>.nvmrc<\/code> dosyalar\u0131 gibi \u00f6zellikleriyle projenin gerektirdi\u011fi Node.js s\u00fcr\u00fcm\u00fcn\u00fc otomatik olarak ayarlayarak bu t\u00fcr sorunlar\u0131n \u00f6n\u00fcne ge\u00e7er ve ekip i\u00e7inde tutarl\u0131 bir geli\u015ftirme ortam\u0131 sa\u011flar.<\/p>\n<p>Bu nedenler, NVM&#8217;in modern Node.js geli\u015ftirme i\u015f ak\u0131\u015f\u0131nda neden bu kadar merkezi bir rol oynad\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a ortaya koymaktad\u0131r.<\/p>\n<h3>Node Version Manager (NVM) Nedir?<\/h3>\n<p>Node Version Manager (NVM), ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, Node.js&#8217;in farkl\u0131 s\u00fcr\u00fcmlerini y\u00f6netmek i\u00e7in kullan\u0131lan bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Geli\u015ftiricilerin tek bir makine \u00fczerinde birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc kurmas\u0131na, kald\u0131rmas\u0131na ve bunlar aras\u0131nda kolayca ge\u00e7i\u015f yapmas\u0131na olanak tan\u0131r. NVM, Node.js&#8217;in resmi bir par\u00e7as\u0131 de\u011fildir; ba\u011f\u0131ms\u0131z bir a\u00e7\u0131k kaynak projesidir ve genellikle Linux ve macOS ortamlar\u0131nda kullan\u0131l\u0131r. Windows i\u00e7in <code>nvm-windows<\/code> gibi alternatifleri bulunsa da, bu makale daha \u00e7ok Linux\/macOS ortam\u0131ndaki NVM&#8217;e odaklanacakt\u0131r.<\/p>\n<h4>NVM&#8217;in Temel Faydalar\u0131<\/h4>\n<p>1.  <strong>Esneklik:<\/strong> Geli\u015ftiricilere, projenin gereksinimlerine g\u00f6re an\u0131nda Node.js s\u00fcr\u00fcm\u00fcn\u00fc de\u011fi\u015ftirme esnekli\u011fi sunar.<br \/>\n2.  <strong>\u0130zolasyon:<\/strong> Her Node.js s\u00fcr\u00fcm\u00fc kendi global npm paketleriyle izole bir \u015fekilde \u00e7al\u0131\u015f\u0131r, bu da ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 en aza indirir.<br \/>\n3.  <strong>Kolay Kurulum ve Y\u00f6netim:<\/strong> Node.js s\u00fcr\u00fcmlerini manuel olarak indirip PATH ayarlamalar\u0131 yapmak yerine, NVM tek bir komutla kurulum ve y\u00f6netimi basitle\u015ftirir.<br \/>\n4.  <strong>Proje Ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 Otomatik Y\u00f6netme:<\/strong> <code>.nvmrc<\/code> dosyalar\u0131 sayesinde, bir projeye girildi\u011finde otomatik olarak do\u011fru Node.js s\u00fcr\u00fcm\u00fcne ge\u00e7i\u015f yapma yetene\u011fi sa\u011flar.<br \/>\n5.  <strong>\u00d6\u011frenme ve Deneme Ortam\u0131:<\/strong> Geli\u015ftiricilerin yeni Node.js s\u00fcr\u00fcmlerini mevcut kurulumlar\u0131n\u0131 bozmadan g\u00fcvenle denemelerine olanak tan\u0131r.<\/p>\n<p>NVM, Node.js geli\u015ftirme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131ran ve verimlili\u011fi art\u0131ran vazge\u00e7ilmez bir ara\u00e7t\u0131r. \u015eimdi, NVM&#8217;i sisteminize nas\u0131l kuraca\u011f\u0131n\u0131za ve kullanmaya ba\u015flayaca\u011f\u0131n\u0131za ge\u00e7elim.<\/p>\n<h3>NVM Kurulumu<\/h3>\n<p>NVM&#8217;i sisteminize kurmak olduk\u00e7a basittir. \u00c7o\u011funlukla Linux ve macOS sistemleri i\u00e7in tasarlanm\u0131\u015ft\u0131r. Windows kullan\u0131c\u0131lar\u0131 i\u00e7in <code>nvm-windows<\/code> ad\u0131nda ayr\u0131 bir proje bulunmaktad\u0131r, ancak bu makale standart NVM kurulumuna odaklanacakt\u0131r.<\/p>\n<h4>\u00d6n Gereksinimler<\/h4>\n<p>NVM&#8217;i kurmadan \u00f6nce, sisteminizde <code>curl<\/code> veya <code>wget<\/code> komutlar\u0131n\u0131n ve derleme ara\u00e7lar\u0131n\u0131n (build essentials) y\u00fckl\u00fc oldu\u011fundan emin olmal\u0131s\u0131n\u0131z. Node.js s\u00fcr\u00fcmlerini derlemek i\u00e7in bu ara\u00e7lara ihtiya\u00e7 duyulabilir.<\/p>\n<p>*   <strong>macOS:<\/strong> Xcode Command Line Tools genellikle bu ara\u00e7lar\u0131 sa\u011flar. Y\u00fckl\u00fc de\u011filse <code>xcode-select --install<\/code> komutuyla kurabilirsiniz.<br \/>\n*   <strong>Linux (Debian\/Ubuntu tabanl\u0131):<\/strong> <code>sudo apt update && sudo apt install build-essential libssl-dev<\/code><br \/>\n*   <strong>Linux (Red Hat\/Fedora tabanl\u0131):<\/strong> <code>sudo yum install gcc-c++ make<\/code> veya <code>sudo dnf install gcc-c++ make<\/code><\/p>\n<h4>Kurulum Ad\u0131mlar\u0131<\/h4>\n<p>NVM&#8217;i kurman\u0131n en yayg\u0131n yolu, <code>curl<\/code> veya <code>wget<\/code> komutlar\u0131n\u0131 kullanarak kurulum beti\u011fini \u00e7al\u0131\u015ft\u0131rmakt\u0131r.<\/p>\n<p>1.  <strong>Kurulum Beti\u011fini \u00c7al\u0131\u015ft\u0131rma:<\/strong><br \/>\n    A\u015fa\u011f\u0131daki komutlardan birini terminalinizde \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<p>    <strong><code>curl<\/code> ile:<\/strong><\/p>\n<pre><code class=\"language-bash\">curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.7\/install.sh | bash<\/code><\/pre>\n<p>    (Not: <code>v0.39.7<\/code> en son stabil s\u00fcr\u00fcm olmayabilir. En g\u00fcncel s\u00fcr\u00fcm\u00fc NVM&#8217;in GitHub sayfas\u0131ndan kontrol etmeniz \u00f6nerilir.)<\/p>\n<p>    <strong><code>wget<\/code> ile:<\/strong><\/p>\n<pre><code class=\"language-bash\">wget -qO- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.7\/install.sh | bash<\/code><\/pre>\n<p>    Bu komut, NVM beti\u011fini indirir ve \u00e7al\u0131\u015ft\u0131r\u0131r. Betik, NVM&#8217;i <code>~\/.nvm<\/code> dizinine kurar ve kabuk (shell) yap\u0131land\u0131rma dosyan\u0131za (\u00f6rne\u011fin <code>.bashrc<\/code>, <code>.zshrc<\/code>, <code>.profile<\/code>) gerekli ortam de\u011fi\u015fkenlerini ve fonksiyonlar\u0131n\u0131 ekler.<\/p>\n<p>2.  <strong>Kabuk Ortam\u0131n\u0131 Yeniden Y\u00fckleme:<\/strong><br \/>\n    Kurulum tamamland\u0131ktan sonra, NVM&#8217;in kabu\u011funuzda tan\u0131nmas\u0131 i\u00e7in terminalinizi kapat\u0131p yeniden a\u00e7man\u0131z veya kabuk yap\u0131land\u0131rma dosyan\u0131z\u0131 kaynaklaman\u0131z gerekir.<\/p>\n<p>    \u00d6rne\u011fin, Bash kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">source ~\/.bashrc<\/code><\/pre>\n<p>    Zsh kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">source ~\/.zshrc<\/code><\/pre>\n<p>    Genel olarak, NVM&#8217;in ekledi\u011fi <code>~\/.nvm\/nvm.sh<\/code> beti\u011fini kaynaklayan sat\u0131r\u0131 i\u00e7eren dosyay\u0131 kaynaklaman\u0131z yeterlidir.<\/p>\n<h4>Kurulum Do\u011frulama<\/h4>\n<p>NVM&#8217;in ba\u015far\u0131l\u0131 bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">nvm --version<\/code><\/pre>\n<p>E\u011fer NVM&#8217;in s\u00fcr\u00fcm numaras\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z, kurulum ba\u015far\u0131l\u0131 demektir. Aksi takdirde, <code>nvm: command not found<\/code> gibi bir hata al\u0131rsan\u0131z, kabuk yap\u0131land\u0131rma dosyan\u0131z\u0131n do\u011fru \u015fekilde g\u00fcncellenip g\u00fcncellenmedi\u011fini ve yeniden kaynaklan\u0131p kaynaklanmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<h4>Yayg\u0131n Kurulum Sorunlar\u0131 ve \u00c7\u00f6z\u00fcmleri<\/h4>\n<p>*   <strong><code>nvm: command not found<\/code>:<\/strong><br \/>\n    *   Kabuk yap\u0131land\u0131rma dosyan\u0131z\u0131n (\u00f6rne\u011fin <code>.bashrc<\/code>, <code>.zshrc<\/code>) do\u011fru \u015fekilde g\u00fcncellendi\u011finden ve NVM y\u00fckleyicisinin ekledi\u011fi sat\u0131rlar\u0131n orada oldu\u011fundan emin olun.<br \/>\n    *   Dosyay\u0131 <code>source<\/code> komutuyla yeniden y\u00fckleyin veya terminali kapat\u0131p a\u00e7\u0131n.<br \/>\n    *   Baz\u0131 durumlarda, NVM&#8217;in PATH&#8217;e eklenmesi i\u00e7in manuel olarak <code>export NVM_DIR=\"$HOME\/.nvm\"<\/code> ve <code>[ -s \"$NVM_DIR\/nvm.sh\" ] && \\. \"$NVM_DIR\/nvm.sh\"<\/code> gibi sat\u0131rlar\u0131 eklemeniz gerekebilir.<br \/>\n*   <strong>\u0130zin Sorunlar\u0131:<\/strong><br \/>\n    *   <code>~\/.nvm<\/code> dizini ve i\u00e7indeki dosyalar i\u00e7in do\u011fru okuma\/yazma izinlerine sahip oldu\u011funuzdan emin olun. Gerekirse <code>chmod<\/code> komutunu kullan\u0131n.<br \/>\n*   <strong><code>curl<\/code> veya <code>wget<\/code> bulunamad\u0131:<\/strong><br \/>\n    *   Sisteminizde bu ara\u00e7lar\u0131n y\u00fckl\u00fc oldu\u011fundan emin olun. Gerekirse paket y\u00f6neticinizle kurun (\u00f6rn. <code>sudo apt install curl<\/code> veya <code>sudo yum install wget<\/code>).<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, NVM&#8217;i kullanarak Node.js s\u00fcr\u00fcmlerini y\u00f6netmeye ba\u015flayabilirsiniz.<\/p>\n<h3>NVM Temel Kullan\u0131m\u0131<\/h3>\n<p>NVM, Node.js s\u00fcr\u00fcmlerini y\u00f6netmek i\u00e7in bir dizi basit ve sezgisel komut sunar. Bu b\u00f6l\u00fcmde, NVM&#8217;in temel kullan\u0131m senaryolar\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h4>Mevcut Node.js S\u00fcr\u00fcmlerini Listeleme<\/h4>\n<p>NVM ile y\u00fckleyebilece\u011finiz t\u00fcm Node.js s\u00fcr\u00fcmlerini g\u00f6rmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">nvm ls-remote<\/code><\/pre>\n<p>Bu komut, Node.js&#8217;in kararl\u0131 (stable) ve uzun s\u00fcreli destek (LTS &#8211; Long Term Support) s\u00fcr\u00fcmleri de dahil olmak \u00fczere, NVM arac\u0131l\u0131\u011f\u0131yla y\u00fcklenebilecek t\u00fcm s\u00fcr\u00fcmlerin bir listesini g\u00f6sterir. Listede <code>lts\/<\/code> ile i\u015faretlenmi\u015f s\u00fcr\u00fcmler LTS s\u00fcr\u00fcmleridir.<\/p>\n<h4>Node.js S\u00fcr\u00fcm\u00fc Y\u00fckleme<\/h4>\n<p>Belirli bir Node.js s\u00fcr\u00fcm\u00fcn\u00fc sisteminize y\u00fcklemek i\u00e7in <code>nvm install<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">nvm install <s\u00fcr\u00fcm_numaras\u0131><\/code><\/pre>\n<p>\u00d6rne\u011fin:<br \/>\n*   Node.js 18.18.2 s\u00fcr\u00fcm\u00fcn\u00fc y\u00fcklemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm install 18.18.2<\/code><\/pre>\n<p>*   Node.js&#8217;in en son LTS s\u00fcr\u00fcm\u00fcn\u00fc y\u00fcklemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm install --lts<\/code><\/pre>\n<p>*   Node.js&#8217;in en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc (LTS olmayan) y\u00fcklemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm install node<\/code><\/pre>\n<p>NVM, se\u00e7ilen Node.js s\u00fcr\u00fcm\u00fcn\u00fc indirir, derler ve <code>~\/.nvm\/versions\/node<\/code> dizinine kurar. Kurulum tamamland\u0131\u011f\u0131nda, NVM otomatik olarak bu yeni s\u00fcr\u00fcm\u00fc kullanmaya ba\u015flar.<\/p>\n<h4>Y\u00fckl\u00fc Node.js S\u00fcr\u00fcmlerini G\u00f6r\u00fcnt\u00fcleme<\/h4>\n<p>Sisteminizde NVM arac\u0131l\u0131\u011f\u0131yla y\u00fckl\u00fc olan t\u00fcm Node.js s\u00fcr\u00fcmlerini g\u00f6rmek i\u00e7in <code>nvm ls<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">nvm ls<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131, y\u00fckl\u00fc s\u00fcr\u00fcmleri listeler ve \u015fu anda hangi s\u00fcr\u00fcm\u00fcn etkin oldu\u011funu bir ok i\u015fareti ( <code>-><\/code> ) ile belirtir.<\/p>\n<p>\u00d6rnek \u00e7\u0131kt\u0131:<\/p>\n<pre><code class=\"language-\">v16.20.2\n       v18.18.2\n->     v20.9.0\ndefault -> 20.9.0 (-> v20.9.0)\nnode -> stable (-> v20.9.0) (default)\nio.js -> N\/A (default)\nunstable -> N\/A (default)\nlts\/gallium -> v16.20.2 (-> v16.20.2)\nlts\/hydrogen -> v18.18.2 (-> v18.18.2)\nlts\/iron -> v20.9.0 (-> v20.9.0)<\/code><\/pre>\n<p>Bu \u00e7\u0131kt\u0131da <code>v20.9.0<\/code> s\u00fcr\u00fcm\u00fcn\u00fcn \u015fu anda etkin oldu\u011funu g\u00f6rebilirsiniz.<\/p>\n<h4>S\u00fcr\u00fcmler Aras\u0131nda Ge\u00e7i\u015f Yapma<\/h4>\n<p>Y\u00fckl\u00fc Node.js s\u00fcr\u00fcmleri aras\u0131nda ge\u00e7i\u015f yapmak i\u00e7in <code>nvm use<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">nvm use <s\u00fcr\u00fcm_numaras\u0131><\/code><\/pre>\n<p>\u00d6rne\u011fin, <code>v18.18.2<\/code> s\u00fcr\u00fcm\u00fcne ge\u00e7mek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm use 18.18.2<\/code><\/pre>\n<p>Bu komut, ge\u00e7erli terminal oturumunuz i\u00e7in Node.js s\u00fcr\u00fcm\u00fcn\u00fc de\u011fi\u015ftirir. Terminali kapat\u0131p a\u00e7t\u0131\u011f\u0131n\u0131zda veya yeni bir terminal oturumu ba\u015flatt\u0131\u011f\u0131n\u0131zda, varsay\u0131lan olarak ayarlad\u0131\u011f\u0131n\u0131z Node.js s\u00fcr\u00fcm\u00fc etkin olacakt\u0131r (varsa).<\/p>\n<h4>Varsay\u0131lan S\u00fcr\u00fcm Ayarlama<\/h4>\n<p>Her yeni terminal oturumu ba\u015flatt\u0131\u011f\u0131n\u0131zda otomatik olarak belirli bir Node.js s\u00fcr\u00fcm\u00fcn\u00fcn kullan\u0131lmas\u0131n\u0131 sa\u011flamak i\u00e7in <code>nvm alias default<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">nvm alias default <s\u00fcr\u00fcm_numaras\u0131><\/code><\/pre>\n<p>\u00d6rne\u011fin, <code>v20.9.0<\/code> s\u00fcr\u00fcm\u00fcn\u00fc varsay\u0131lan olarak ayarlamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm alias default 20.9.0<\/code><\/pre>\n<p>Art\u0131k yeni bir terminal oturumu ba\u015flatt\u0131\u011f\u0131n\u0131zda, NVM otomatik olarak <code>v20.9.0<\/code> s\u00fcr\u00fcm\u00fcn\u00fc etkinle\u015ftirecektir.<\/p>\n<h4>Bir S\u00fcr\u00fcm\u00fc Kald\u0131rma<\/h4>\n<p>Art\u0131k ihtiyac\u0131n\u0131z olmayan bir Node.js s\u00fcr\u00fcm\u00fcn\u00fc sisteminizden kald\u0131rmak i\u00e7in <code>nvm uninstall<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">nvm uninstall <s\u00fcr\u00fcm_numaras\u0131><\/code><\/pre>\n<p>\u00d6rne\u011fin, <code>v16.20.2<\/code> s\u00fcr\u00fcm\u00fcn\u00fc kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm uninstall 16.20.2<\/code><\/pre>\n<p>Kald\u0131rmak istedi\u011finiz s\u00fcr\u00fcm\u00fcn \u015fu anda etkin olmad\u0131\u011f\u0131ndan emin olun. Etkin olan bir s\u00fcr\u00fcm\u00fc kald\u0131rmaya \u00e7al\u0131\u015f\u0131rsan\u0131z, NVM sizi uyaracakt\u0131r.<\/p>\n<p>Bu temel komutlarla, Node.js&#8217;in farkl\u0131 s\u00fcr\u00fcmlerini kolayca kurabilir, y\u00f6netebilir ve projeleriniz aras\u0131nda sorunsuz bir \u015fekilde ge\u00e7i\u015f yapabilirsiniz.<\/p>\n<h3>Geli\u015fmi\u015f NVM Kullan\u0131m\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>NVM&#8217;in temel komutlar\u0131 g\u00fcnl\u00fck kullan\u0131m i\u00e7in yeterli olsa da, baz\u0131 geli\u015fmi\u015f \u00f6zellikler ve en iyi uygulamalar, geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 daha da optimize etmenize yard\u0131mc\u0131 olabilir.<\/p>\n<h4><code>.nvmrc<\/code> Dosyalar\u0131 ile Projeye \u00d6zel S\u00fcr\u00fcmler<\/h4>\n<p>NVM&#8217;in en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri, <code>.nvmrc<\/code> dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla projeye \u00f6zel Node.js s\u00fcr\u00fcmlerini otomatik olarak y\u00f6netebilmesidir. Bir <code>.nvmrc<\/code> dosyas\u0131, projenizin k\u00f6k dizininde bulunan ve projenin hangi Node.js s\u00fcr\u00fcm\u00fcn\u00fc gerektirdi\u011fini belirten basit bir metin dosyas\u0131d\u0131r.<\/p>\n<p><strong>Nas\u0131l Kullan\u0131l\u0131r:<\/strong><\/p>\n<p>1.  <strong><code>.nvmrc<\/code> Olu\u015fturma:<\/strong> Projenizin k\u00f6k dizininde <code>.nvmrc<\/code> ad\u0131nda bir dosya olu\u015fturun ve i\u00e7ine projenin gerektirdi\u011fi Node.js s\u00fcr\u00fcm numaras\u0131n\u0131 yaz\u0131n.<\/p>\n<p>    \u00d6rne\u011fin, projeniz Node.js 18.x s\u00fcr\u00fcm\u00fcn\u00fc gerektiriyorsa:<\/p>\n<pre><code class=\"language-bash\">echo \"v18.18.2\" > .nvmrc\n    # veya sadece ana s\u00fcr\u00fcm\u00fc belirtebilirsiniz:\n    echo \"18\" > .nvmrc\n    # veya en son LTS'yi belirtebilirsiniz:\n    echo \"lts\/*\" > .nvmrc<\/code><\/pre>\n<p>    <code>lts\/*<\/code> kullanmak, NVM&#8217;in projenin ba\u011flam\u0131nda en son LTS s\u00fcr\u00fcm\u00fcn\u00fc otomatik olarak se\u00e7mesini sa\u011flar.<\/p>\n<p>2.  <strong>Otomatik Ge\u00e7i\u015f:<\/strong> Projenin dizinine girdi\u011finizde, <code>nvm use<\/code> komutunu parametresiz \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">cd my-node-project\/\n    nvm use<\/code><\/pre>\n<p>    NVM, <code>.nvmrc<\/code> dosyas\u0131n\u0131 okuyacak ve belirtilen Node.js s\u00fcr\u00fcm\u00fcn\u00fc otomatik olarak etkinle\u015ftirecektir. E\u011fer belirtilen s\u00fcr\u00fcm y\u00fckl\u00fc de\u011filse, NVM size onu y\u00fcklemenizi \u00f6nerecektir.<\/p>\n<p>    Baz\u0131 kabuk yap\u0131land\u0131rmalar\u0131 ve eklentileri (\u00f6rne\u011fin <code>oh-my-zsh<\/code> i\u00e7in <code>nvm<\/code> eklentisi), bir dizine girdi\u011finizde <code>nvm use<\/code> komutunu otomatik olarak \u00e7al\u0131\u015ft\u0131rma yetene\u011fine sahiptir. Bu, geli\u015ftirme deneyimini daha da sorunsuz hale getirir.<\/p>\n<p>Bu \u00f6zellik, ekip i\u00e7inde ortam tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak ve yeni geli\u015ftiricilerin projelere h\u0131zl\u0131ca adapte olmas\u0131n\u0131 kolayla\u015ft\u0131rmak i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h4>Global Paket Y\u00f6netimi<\/h4>\n<p>NVM ile Node.js s\u00fcr\u00fcmleri aras\u0131nda ge\u00e7i\u015f yapt\u0131\u011f\u0131n\u0131zda, her Node.js s\u00fcr\u00fcm\u00fcn\u00fcn kendi global npm paketleri setine sahip oldu\u011funu unutmamak \u00f6nemlidir. Yani, Node.js 18&#8217;de global olarak kurdu\u011funuz bir paket, Node.js 20&#8217;ye ge\u00e7ti\u011finizde otomatik olarak kullan\u0131lamaz olacakt\u0131r.<\/p>\n<p>*   <strong>Paketleri Yeniden Y\u00fckleme:<\/strong> Bir Node.js s\u00fcr\u00fcm\u00fcne ge\u00e7tikten sonra, o s\u00fcr\u00fcm i\u00e7in ihtiyac\u0131n\u0131z olan global paketleri yeniden y\u00fcklemeniz gerekebilir:<\/p>\n<pre><code class=\"language-bash\">nvm use 18\n    npm install -g nodemon<\/code><\/pre>\n<p>*   <strong>Global Paketleri Kopyalama:<\/strong> NVM, bir Node.js s\u00fcr\u00fcm\u00fcnden di\u011ferine global paketleri kopyalamak i\u00e7in <code>nvm install <version> --reinstall-packages-from=<source_version><\/code> gibi bir se\u00e7enek sunar. Ancak, bu her zaman sorunsuz \u00e7al\u0131\u015fmayabilir ve manuel olarak yeniden y\u00fcklemek genellikle daha g\u00fcvenilirdir.<\/p>\n<p>Bu davran\u0131\u015f, farkl\u0131 Node.js s\u00fcr\u00fcmlerinin birbirlerinin global ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 etkilemesini \u00f6nleyerek izolasyonu sa\u011flar.<\/p>\n<h4><code>nvm current<\/code> ve <code>nvm which<\/code> Komutlar\u0131<\/h4>\n<p>*   <strong><code>nvm current<\/code>:<\/strong> \u015eu anda hangi Node.js s\u00fcr\u00fcm\u00fcn\u00fcn etkin oldu\u011funu g\u00f6sterir. <code>node -v<\/code> ile ayn\u0131 \u00e7\u0131kt\u0131y\u0131 verir ancak NVM ba\u011flam\u0131nda bilgi sunar.<\/p>\n<pre><code class=\"language-bash\">nvm current<\/code><\/pre>\n<p>*   <strong><code>nvm which <s\u00fcr\u00fcm_numaras\u0131><\/code>:<\/strong> Belirli bir Node.js s\u00fcr\u00fcm\u00fcn\u00fcn sistemde nerede y\u00fckl\u00fc oldu\u011funu g\u00f6sterir. Bu, PATH sorunlar\u0131n\u0131 gidermek veya Node.js y\u00fcr\u00fct\u00fclebilir dosyas\u0131n\u0131n tam yolunu \u00f6\u011frenmek i\u00e7in faydal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">nvm which 18<\/code><\/pre>\n<h4>Sistem Node.js Kurulumlar\u0131 ile \u00c7ak\u0131\u015fmalar<\/h4>\n<p>E\u011fer NVM&#8217;i kurmadan \u00f6nce sisteminizde (\u00f6rne\u011fin <code>apt<\/code>, <code>yum<\/code>, <code>brew<\/code> gibi paket y\u00f6neticileri arac\u0131l\u0131\u011f\u0131yla) bir Node.js kurulumu varsa, bu durum NVM ile \u00e7ak\u0131\u015fmalara yol a\u00e7abilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n1.  <strong>Sistem Node.js&#8217;i Kald\u0131rma:<\/strong> M\u00fcmk\u00fcnse, NVM&#8217;i kullanmaya ba\u015flamadan \u00f6nce sisteminizdeki Node.js kurulumunu kald\u0131r\u0131n.<br \/>\n    *   <strong>macOS (Homebrew):<\/strong> <code>brew uninstall node<\/code><br \/>\n    *   <strong>Debian\/Ubuntu:<\/strong> <code>sudo apt remove nodejs npm<\/code><br \/>\n2.  <strong>PATH&#8217;i Temizleme:<\/strong> Kabuk yap\u0131land\u0131rma dosyan\u0131zda (\u00f6rn. <code>.bashrc<\/code>, <code>.zshrc<\/code>) sistem Node.js&#8217;ine i\u015faret eden eski PATH girdilerini kald\u0131r\u0131n. NVM kendi PATH ayarlar\u0131n\u0131 y\u00f6netecektir.<\/p>\n<p>NVM, kendi Node.js s\u00fcr\u00fcmlerini <code>~\/.nvm\/versions\/node<\/code> dizinine kurarak sistem PATH&#8217;ini ge\u00e7ici olarak de\u011fi\u015ftirir. Bu, sistem Node.js&#8217;inin NVM taraf\u0131ndan y\u00f6netilen s\u00fcr\u00fcmlerle kar\u0131\u015fmamas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>NPM S\u00fcr\u00fcm Y\u00f6netimi<\/h4>\n<p>NVM ile bir Node.js s\u00fcr\u00fcm\u00fc y\u00fckledi\u011finizde, o s\u00fcr\u00fcmle birlikte uyumlu bir npm (Node Package Manager) s\u00fcr\u00fcm\u00fc de otomatik olarak kurulur. Genellikle, Node.js s\u00fcr\u00fcm\u00fcn\u00fc de\u011fi\u015ftirdi\u011finizde npm s\u00fcr\u00fcm\u00fc de buna uygun olarak de\u011fi\u015fir.<\/p>\n<p>Ancak, bazen belirli bir npm s\u00fcr\u00fcm\u00fcne ihtiyac\u0131n\u0131z olabilir veya npm&#8217;i manuel olarak g\u00fcncellemek isteyebilirsiniz. Bunu yapmak i\u00e7in, belirli bir Node.js s\u00fcr\u00fcm\u00fcn\u00fc etkinle\u015ftirdikten sonra npm&#8217;i normal \u015fekilde g\u00fcncelleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">nvm use 20\nnpm install -g npm@latest<\/code><\/pre>\n<p>Bu, yaln\u0131zca o anda etkin olan Node.js s\u00fcr\u00fcm\u00fc i\u00e7in npm&#8217;i g\u00fcncelleyecektir. Di\u011fer Node.js s\u00fcr\u00fcmlerine ge\u00e7ti\u011finizde, o s\u00fcr\u00fcmlerin kendi npm s\u00fcr\u00fcmleri etkin olacakt\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>NVM, genellikle sorunsuz \u00e7al\u0131\u015fsa da, bazen baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte bunlardan baz\u0131lar\u0131 ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4><code>nvm: command not found<\/code><\/h4>\n<p>Bu, NVM kurulumunun en s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar\u0131ndan biridir.<\/p>\n<p>*   <strong>Neden:<\/strong> NVM&#8217;in kabuk yap\u0131land\u0131rma dosyan\u0131za (\u00f6rn. <code>.bashrc<\/code>, <code>.zshrc<\/code>) do\u011fru \u015fekilde y\u00fcklenmemesi veya bu dosyan\u0131n yeniden kaynaklanmamas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    1.  NVM&#8217;i kurarken kulland\u0131\u011f\u0131n\u0131z <code>install.sh<\/code> beti\u011finin \u00e7\u0131kt\u0131s\u0131n\u0131 kontrol edin. Genellikle betik, hangi dosyay\u0131 <code>source<\/code> etmeniz gerekti\u011fini s\u00f6yler.<br \/>\n    2.  Kabuk yap\u0131land\u0131rma dosyan\u0131zda (genellikle <code>~\/.bashrc<\/code> veya <code>~\/.zshrc<\/code>) a\u015fa\u011f\u0131daki veya benzeri sat\u0131rlar\u0131n bulundu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-bash\">export NVM_DIR=\"$HOME\/.nvm\"\n        [ -s \"$NVM_DIR\/nvm.sh\" ] && \\. \"$NVM_DIR\/nvm.sh\" # This loads nvm\n        [ -s \"$NVM_DIR\/bash_completion\" ] && \\. \"$NVM_DIR\/bash_completion\" # This loads nvm bash_completion<\/code><\/pre>\n<p>    3.  Dosyay\u0131 kaydedin ve terminalinizde <code>source ~\/.bashrc<\/code> (veya <code>~\/.zshrc<\/code>) komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Alternatif olarak, terminali kapat\u0131p yeniden a\u00e7\u0131n.<\/p>\n<h4>\u0130zin Sorunlar\u0131<\/h4>\n<p>NVM, Node.js s\u00fcr\u00fcmlerini <code>~\/.nvm<\/code> dizinine kurar. Bu dizine yazma izniniz yoksa sorunlar ya\u015fayabilirsiniz.<\/p>\n<p>*   <strong>Neden:<\/strong> <code>~\/.nvm<\/code> dizini i\u00e7in yanl\u0131\u015f dosya izinleri.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>~\/.nvm<\/code> dizininin sahibi oldu\u011funuzdan emin olun ve gerekli izinleri verin:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R $(whoami) ~\/.nvm<\/code><\/pre>\n<h4>Derleme Hatalar\u0131 (Build Tools)<\/h4>\n<p>NVM, Node.js&#8217;in baz\u0131 s\u00fcr\u00fcmlerini kaynak koddan derleyebilir. Bu s\u00fcre\u00e7te gerekli derleme ara\u00e7lar\u0131 eksikse hatalar alabilirsiniz.<\/p>\n<p>*   <strong>Neden:<\/strong> Sistemde <code>build-essential<\/code> (Linux) veya Xcode Command Line Tools (macOS) gibi derleme ara\u00e7lar\u0131n\u0131n eksik olmas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong>macOS:<\/strong> <code>xcode-select --install<\/code><br \/>\n    *   <strong>Debian\/Ubuntu:<\/strong> <code>sudo apt update && sudo apt install build-essential libssl-dev<\/code><br \/>\n    *   <strong>Red Hat\/Fedora:<\/strong> <code>sudo yum install gcc-c++ make<\/code> veya <code>sudo dnf install gcc-c++ make<\/code><br \/>\n    *   Kurulumdan sonra NVM ile Node.js s\u00fcr\u00fcm\u00fcn\u00fc tekrar y\u00fcklemeyi deneyin.<\/p>\n<h4>PATH \u00c7ak\u0131\u015fmalar\u0131<\/h4>\n<p>NVM&#8217;den \u00f6nce sisteminizde Node.js y\u00fckl\u00fcyse, PATH de\u011fi\u015fkeninizde NVM&#8217;in bekledi\u011fi gibi davranmayabilir.<\/p>\n<p>*   <strong>Neden:<\/strong> Sistem Node.js&#8217;inin yolu, NVM&#8217;in yolundan \u00f6nce geliyorsa veya NVM&#8217;in kendi PATH de\u011fi\u015fikliklerini yapmas\u0131n\u0131 engelleyen ba\u015fka girdiler varsa.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    1.  Sistem Node.js kurulumunu kald\u0131r\u0131n (yukar\u0131da belirtildi\u011fi gibi).<br \/>\n    2.  Kabuk yap\u0131land\u0131rma dosyan\u0131zdaki <code>PATH<\/code> de\u011fi\u015fkenini inceleyin ve NVM&#8217;in <code>~\/.nvm\/versions\/node\/vX.Y.Z\/bin<\/code> yolunu do\u011fru \u015fekilde ekledi\u011finden emin olun. Eski Node.js yollar\u0131n\u0131 kald\u0131r\u0131n.<br \/>\n    3.  Kabuk yap\u0131land\u0131rma dosyas\u0131n\u0131 yeniden kaynaklay\u0131n.<\/p>\n<h4><code>.nvmrc<\/code> Dosyas\u0131 Alg\u0131lanm\u0131yor<\/h4>\n<p><code>.nvmrc<\/code> dosyas\u0131n\u0131 olu\u015fturduktan sonra <code>nvm use<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda do\u011fru s\u00fcr\u00fcm\u00fcn etkinle\u015fmedi\u011fi durumlar olabilir.<\/p>\n<p>*   <strong>Neden:<\/strong> <code>.nvmrc<\/code> dosyas\u0131n\u0131n do\u011fru dizinde olmamas\u0131, dosya ad\u0131n\u0131n yanl\u0131\u015f olmas\u0131 veya dosya i\u00e7eri\u011finin ge\u00e7ersiz olmas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    1.  <code>.nvmrc<\/code> dosyas\u0131n\u0131n projenin k\u00f6k dizininde oldu\u011fundan emin olun.<br \/>\n    2.  Dosya ad\u0131n\u0131n tam olarak <code>.nvmrc<\/code> oldu\u011fundan emin olun (gizli dosya).<br \/>\n    3.  Dosya i\u00e7eri\u011finin sadece s\u00fcr\u00fcm numaras\u0131n\u0131 (\u00f6rn. <code>v18.18.2<\/code>, <code>18<\/code>, <code>lts\/*<\/code>) i\u00e7erdi\u011finden ve ba\u015fka karakterler veya bo\u015fluklar olmad\u0131\u011f\u0131ndan emin olun.<br \/>\n    4.  <code>nvm use<\/code> komutunu <code>.nvmrc<\/code> dosyas\u0131n\u0131n bulundu\u011fu dizinde \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<p>Bu sorunlar ve \u00e7\u00f6z\u00fcmleri, NVM ile \u00e7al\u0131\u015f\u0131rken kar\u015f\u0131la\u015fabilece\u011finiz en yayg\u0131n durumlar\u0131 kapsar. Genellikle, NVM&#8217;in kendi dok\u00fcmantasyonu ve topluluk kaynaklar\u0131 da sorun giderme i\u00e7in de\u011ferli bilgiler sunar.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Node.js geli\u015ftirme d\u00fcnyas\u0131nda esneklik ve verimlilik, ba\u015far\u0131 i\u00e7in kritik \u00f6neme sahiptir. Node Version Manager (NVM), geli\u015ftiricilere bu esnekli\u011fi ve verimlili\u011fi sa\u011flayan vazge\u00e7ilmez bir ara\u00e7t\u0131r. Farkl\u0131 projelerin farkl\u0131 Node.js s\u00fcr\u00fcmlerine ba\u011f\u0131ml\u0131 oldu\u011fu, yeni \u00f6zelliklerin s\u00fcrekli olarak tan\u0131t\u0131ld\u0131\u011f\u0131 ve uyumluluk testlerinin giderek \u00f6nem kazand\u0131\u011f\u0131 bir ortamda, NVM&#8217;in sundu\u011fu s\u00fcr\u00fcm y\u00f6netimi yetene\u011fi, modern bir geli\u015ftiricinin ara\u00e7 kutusunda mutlaka bulunmas\u0131 gereken bir \u00f6zelliktir.<\/p>\n<p>Bu makalede, NVM&#8217;in neden gerekli oldu\u011funu, nas\u0131l kurulaca\u011f\u0131n\u0131, temel ve geli\u015fmi\u015f kullan\u0131m komutlar\u0131n\u0131 ve s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar\u0131 nas\u0131l giderece\u011finizi detayl\u0131 bir \u015fekilde inceledik. <code>.nvmrc<\/code> dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla projenin gerektirdi\u011fi Node.js s\u00fcr\u00fcm\u00fcn\u00fc otomatik olarak ayarlayabilme yetene\u011fi, \u00f6zellikle ekip \u00e7al\u0131\u015fmas\u0131 ve s\u00fcrekli entegrasyon (CI) ortamlar\u0131nda tutarl\u0131l\u0131k sa\u011flamak ad\u0131na paha bi\u00e7ilmezdir. Global paket y\u00f6netiminin inceliklerini anlamak ve sistem Node.js kurulumlar\u0131yla olas\u0131 \u00e7ak\u0131\u015fmalar\u0131 \u00e7\u00f6zmek, sorunsuz bir geli\u015ftirme deneyimi i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<p>NVM&#8217;i etkin bir \u015fekilde kullanarak, Node.js projeleriniz aras\u0131nda sorunsuz bir \u015fekilde ge\u00e7i\u015f yapabilir, farkl\u0131 s\u00fcr\u00fcmlerde testler ger\u00e7ekle\u015ftirebilir ve en \u00f6nemlisi, her projenin ihtiya\u00e7 duydu\u011fu spesifik Node.js ortam\u0131n\u0131 kolayca sa\u011flayabilirsiniz. Bu, geli\u015ftirme s\u00fcre\u00e7lerinizi h\u0131zland\u0131racak, hatalar\u0131 azaltacak ve genel olarak daha \u00fcretken olman\u0131z\u0131 sa\u011flayacakt\u0131r. Node.js yolculu\u011funuzda NVM&#8217;i benimsemek, kesinlikle atman\u0131z gereken ak\u0131ll\u0131ca bir ad\u0131md\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Node Version Manager (NVM) ile Node.js&#8217;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi\nNode.js, modern web geli\u015ftirmede ve sunucu taraf\u0131 uygula","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[136],"tags":[],"class_list":{"0":"post-31039","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-node-js","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Node Version Manager (NVM) ile Node.js&#039;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Node Version Manager (NVM) ile Node.js&#039;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Node Version Manager (NVM) ile Node.js&#039;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi Node.js, modern web geli\u015ftirmede ve sunucu taraf\u0131 uygula\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-04T22:41:03+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Node Version Manager (NVM) ile Node.js&#8217;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi\",\"datePublished\":\"2025-10-04T22:41:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/\"},\"wordCount\":3579,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Node.js\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/\",\"name\":\"Node Version Manager (NVM) ile Node.js'in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-04T22:41:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node Version Manager (NVM) ile Node.js&#8217;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Node Version Manager (NVM) ile Node.js'in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Node Version Manager (NVM) ile Node.js'in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi","og_description":"Node Version Manager (NVM) ile Node.js'in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi Node.js, modern web geli\u015ftirmede ve sunucu taraf\u0131 uygula","og_url":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-04T22:41:03+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Node Version Manager (NVM) ile Node.js&#8217;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi","datePublished":"2025-10-04T22:41:03+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/"},"wordCount":3579,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Node.js"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/","name":"Node Version Manager (NVM) ile Node.js'in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-04T22:41:03+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/node-version-manager-nvm-ile-node-jsin-birden-fazla-surumunu-calistirma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Node Version Manager (NVM) ile Node.js&#8217;in Birden Fazla S\u00fcr\u00fcm\u00fcn\u00fc \u00c7al\u0131\u015ft\u0131rma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31039"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31039\/revisions"}],"predecessor-version":[{"id":31040,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31039\/revisions\/31040"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}