Apa yang Dimaksud NVM? Penjelasan Simpel yang Wajib Developer Tahu.
Bayangin gini, kamu lagi asyik ngoding proyek A yang dibuat pakai Node.js versi 14. Proyek ini udah running lancar jaya. Terus, bos minta tolong cek proyek B yang eh, ternyata cuma jalan di Node.js versi 16 atau bahkan versi lebih baru lagi. Apa yang kamu lakukan? Ganti-ganti versi Node.js secara manual? Itu sih namanya nyari penyakit dan bikin repot! Nah, di sinilah NVM atau Node Version Manager datang sebagai pahlawan super para developer JavaScript.
NVM ini basically adalah sebuah tool yang memungkinkan kamu mengelola beberapa versi Node.js di satu komputer. Jadi, kamu bisa install Node.js versi 14, 16, 18, dan seterusnya secara bersamaan tanpa bikin mereka “bertengkar”. Kamu tinggal bilang ke NVM, “Eh, aku mau pakai Node.js versi 16 dong buat proyek yang ini,” dan voila, NVM langsung ngatur environment kamu biar pakai versi yang kamu mau. Gampang banget, kan?
Intinya, NVM ini bikin hidup developer jauh lebih mudah dan efisien. Nggak perlu lagi pusing mikirin konflik versi atau dependencies yang nggak cocok cuma gara-gara beda versi Node.js antara satu proyek dengan proyek lainnya. Ini penting banget, apalagi kalau kamu kerja di lingkungan yang dinamis dengan banyak proyek atau sering nyobain library baru yang mungkin butuh versi Node.js tertentu.
Kenapa NVM Itu Essential Buat Kamu?¶
Dunia pengembangan web itu cepat banget perubahannya, termasuk Node.js itu sendiri. Versi baru muncul dengan fitur baru, perbaikan bug, atau bahkan perubahan besar yang bisa memecah compatibility dengan kode lama. Tanpa NVM, kamu bakal ketemu beberapa skenario nyebelin:
Pertama, konflik versi. Seperti cerita di awal, kalau kamu punya proyek lama yang nggak bisa di-upgrade ke versi Node.js terbaru (misalnya masih pakai library yang deprecated di versi baru) dan kamu juga punya proyek baru yang butuh fitur dari versi terbaru, kamu bakal stuck. Kamu nggak bisa punya dua versi itu terinstall global secara bersamaan dengan mudah. Salah satu pasti akan menimpa yang lain.
Kedua, susah testing. Kadang, kamu perlu test aplikasi kamu di beberapa versi Node.js untuk memastikan compatibility di berbagai lingkungan. Melakukan ini secara manual (install-uninstall-install lagi) itu super buang waktu dan error-prone. Risiko ada sisa file atau path yang nyantol juga ada.
Ketiga, kolaborasi tim. Kalau kamu kerja dalam tim, penting banget semua orang pakai versi Node.js yang sama untuk proyek yang sama. Kalau satu orang pakai versi A dan yang lain pakai versi B, bisa muncul masalah yang aneh-aneh yang susah di-debug (“Kok di komputerku jalan ya, di kamu nggak?”). NVM membantu standarisasi versi dalam tim.
Dengan NVM, semua masalah di atas bisa diatasi dengan beberapa ketikan perintah di terminal. Kamu bisa install versi Node.js berapapun yang kamu butuhkan, dan switch antar versi itu cuma butuh waktu hitungan detik. Ini memberikan fleksibilitas yang luar biasa dalam workflow pengembangan kamu.
Gimana Sih Cara Kerja NVM Secara Garis Besar?¶
Konsep NVM itu sebenarnya cukup simple tapi powerful. NVM nggak numpang di instalasi Node.js global sistem kamu. Justru sebaliknya, dia punya “rumah” sendiri di dalam user directory kamu, biasanya di folder .nvm (misalnya ~/.nvm di Linux/macOS).
Ketika kamu pakai NVM untuk menginstall Node.js versi tertentu (misalnya nvm install 18), NVM bakal mengunduh binary Node.js versi 18 dan menyimpannya di sub-folder di dalam rumahnya itu (misalnya ~/.nvm/versions/node/v18.17.1). Setiap versi yang kamu install punya foldernya sendiri yang terisolasi.
Nah, pas kamu bilang nvm use 18, NVM nggak melakukan sihir apa-apa ke instalasi global kamu. Yang dia lakukan adalah memanipulasi variabel lingkungan PATH di session terminal yang sedang kamu pakai. Dia menambahkan path ke folder bin (tempat executable Node dan npm berada) dari versi 18 yang kamu pilih ke bagian depan variabel PATH.
Dengan begitu, ketika kamu mengetik node -v atau npm -v di terminal itu, shell kamu akan mencari executable di path yang paling depan dulu, yaitu path yang ditunjuk oleh NVM untuk versi 18. Terminal atau session lain yang belum kamu setel pakai NVM akan tetap menggunakan path default-nya, entah itu ke instalasi global atau ke versi Node.js lain yang diatur oleh NVM sebelumnya. Ini yang bikin setiap session terminal bisa pakai versi Node.js yang berbeda-beda, sesuai kebutuhan.
Nggak permanen secara default di seluruh sistem adalah kuncinya. Perubahan PATH yang dilakukan NVM itu cuma berlaku di session terminal tempat kamu menjalankan perintah nvm use. Ini memberikan isolasi yang sangat baik antar proyek atau antar session kerja kamu.
Yuk, Kita Mulai Install NVM!¶
Menginstall NVM itu nggak susah kok, meskipun beda sedikit caranya tergantung sistem operasi yang kamu pakai. Penting dicatat, NVM original yang paling populer itu khusus untuk lingkungan Unix-like (macOS dan Linux). Untuk Windows, ada proyek terpisah yang mengadopsi konsep serupa tapi dengan implementasi yang berbeda, namanya nvm-windows.
Untuk Pengguna macOS dan Linux¶
Ini adalah cara paling umum dan direkomendasikan untuk menginstall NVM di sistem operasi seperti Ubuntu, Fedora, macOS, atau distribusi Linux lainnya. Kamu bisa menggunakan skrip instalasi yang disediakan.
Buka terminal kamu, lalu jalankan salah satu perintah berikut (menggunakan curl atau wget):
Menggunakan curl:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
Menggunakan wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
Note: Pastikan kamu menggunakan versi NVM terbaru. Kamu bisa cek di halaman GitHub NVM (nvm-sh/nvm) untuk versi rilisan terbarunya.
Skrip ini akan mengunduh NVM ke dalam folder ~/.nvm dan menambahkan script ke profile shell kamu (seperti .bashrc, .zshrc, .profile, atau .bash_profile) agar NVM bisa di-load setiap kali kamu membuka terminal baru.
Setelah selesai, tutup terminal dan buka lagi terminal baru agar perubahan pada profile shell kamu aktif. Atau, kamu bisa menjalankan perintah source ~/.bashrc (sesuaikan dengan shell dan profile kamu) untuk me-reload profile di terminal yang sama.
Untuk memastikan NVM sudah terinstall dengan benar, ketik perintah:
command -v nvm
Jika output-nya adalah nvm, itu tandanya instalasi kamu berhasil. Kalau output-nya command not found atau kosong, mungkin ada masalah dengan sourcing profile shell kamu. Cek lagi file profile yang dimodifikasi oleh skrip instalasi.
Image just for illustration
Untuk Pengguna Windows¶
Seperti yang sudah disebutkan, nvm yang untuk Unix-like itu nggak bisa jalan di Windows. Tapi jangan khawatir, ada alternatif bagus bernama nvm-windows. Ini adalah proyek independen yang didesain khusus untuk lingkungan Windows.
Cara install nvm-windows itu jauh lebih friendly buat pengguna Windows, yaitu dengan mengunduh installer (.exe file).
- Kunjungi halaman rilis
nvm-windowsdi GitHub (caricoreybutler/nvm-windows). - Unduh file installer terbaru, biasanya namanya seperti
nvm-setup.zip. - Ekstrak file ZIP tersebut.
- Jalankan file
.exedi dalamnya dan ikuti petunjuk instalasinya.
Installer nvm-windows akan mengatur semua yang diperlukan, termasuk memodifikasi PATH sistem kamu agar NVM bisa diakses dari Command Prompt atau PowerShell mana pun.
Setelah instalasi selesai, buka Command Prompt atau PowerShell baru (terminal yang sudah terbuka sebelumnya mungkin belum mengenali perintah nvm). Ketik:
nvm -v
Jika muncul nomor versi nvm-windows, berarti instalasi kamu berhasil.
Image just for illustration
Penting untuk diingat, jangan pernah menginstall Node.js secara global menggunakan installer resmi dari website nodejs.org kalau kamu berencana menggunakan NVM (baik yang Unix-like maupun nvm-windows). NVM lebih suka mengelola semuanya sendiri. Kalau sudah terinstall global, sebaiknya di-uninstall dulu sebelum install NVM, meskipun NVM biasanya bisa mendeteksi instalasi global dan memberimu pilihan untuk mengelolanya juga.
Perintah Dasar NVM yang Wajib Kamu Tahu¶
Setelah NVM terinstall, kamu siap menggunakan kekuatannya untuk mengelola Node.js. Berikut adalah perintah-perintah dasar yang paling sering digunakan:
nvm install <version>¶
Perintah ini digunakan untuk menginstall versi Node.js tertentu. Kamu bisa spesifik banget atau pakai alias.
nvm install 18.17.1: Menginstall Node.js versi spesifik 18.17.1.nvm install 16: Menginstall versi minor terbaru dari Node.js seri 16 (misalnya 16.20.2).nvm install node: Menginstall versi Node.js stabil terbaru yang tersedia.nvm install --lts: Menginstall versi LTS (Long Term Support) terbaru.nvm install lts/gallium: Menginstall versi LTS dengan nama alias ‘gallium’ (Node.js 16).
Setelah proses instalasi selesai, NVM biasanya akan langsung switch ke versi yang baru saja kamu install.
nvm use <version>¶
Ini perintah sakti untuk switch ke versi Node.js yang sudah terinstall melalui NVM.
nvm use 18: Menggunakan versi Node.js 18 (akan memilih minor terbaru jika ada beberapa versi 18 yang terinstall).nvm use 16.20.2: Menggunakan versi spesifik 16.20.2.nvm use node: Menggunakan versi Node.js stabil terbaru yang terinstall (yang di-install vianvm install node).nvm use system: Kalau kamu punya Node.js yang terinstall global (bukan via NVM), perintah ini akan membuat session terminal kamu kembali menggunakan instalasi global tersebut.
Ingat, perintah nvm use ini hanya berlaku untuk session terminal saat itu. Kalau kamu buka terminal baru, dia akan menggunakan versi default (jika sudah diatur) atau versi yang sebelumnya aktif di terminal tersebut (tergantung konfigurasi shell).
nvm ls¶
Perintah ini akan menampilkan daftar semua versi Node.js yang sudah kamu install melalui NVM di komputer kamu. Versi yang sedang aktif di terminal tersebut akan ditandai dengan panah (->).
-> v16.20.2
v18.17.1
v20.5.1
system
Contoh output di atas menunjukkan versi 16.20.2 sedang aktif, dan ada juga versi 18.17.1 serta 20.5.1 yang terinstall. system menunjukkan apakah NVM mendeteksi instalasi Node.js global di luar manajemennya.
nvm ls-remote¶
Ini adalah perintah untuk melihat daftar semua versi Node.js yang tersedia di repositori Node.js dan bisa kamu install menggunakan NVM. Daftarnya panjang banget, mulai dari versi paling lama sampai yang terbaru, termasuk yang masih dalam tahap pre-release. Ini berguna kalau kamu mau menginstall versi yang sangat spesifik atau testing fitur terbaru yang belum masuk rilis stabil.
nvm alias default <version>¶
Perintah ini mengatur versi Node.js mana yang akan secara otomatis aktif setiap kali kamu membuka terminal baru. Ini sangat membantu agar kamu tidak perlu mengetik nvm use setiap kali memulai kerja.
nvm alias default 18: Membuat versi Node.js 18 menjadi default untuk session terminal baru.
Kamu bisa melihat alias yang sudah ada dengan perintah nvm alias.
nvm uninstall <version>¶
Perintah ini digunakan untuk menghapus instalasi Node.js versi tertentu yang sudah tidak kamu butuhkan lagi. Ini membantu menghemat ruang disk dan menjaga daftar versi yang terinstall tetap bersih.
nvm uninstall 16.20.2: Menghapus versi spesifik 16.20.2.nvm uninstall 16: Menghapus minor terbaru dari seri 16 yang terinstall (kalau ada beberapa versi 16, perintah ini mungkin butuh konfirmasi atau lebih baik spesifik).
Pastikan kamu tidak sedang menggunakan versi yang mau di-uninstall. Switch dulu ke versi lain atau ke system sebelum menghapusnya.
nvm current¶
Ini perintah sederhana untuk melihat versi Node.js mana yang sedang aktif dan digunakan di session terminal kamu saat ini.
Masih banyak perintah NVM lainnya, tapi yang di atas adalah yang paling fundamental dan akan sangat sering kamu gunakan dalam pekerjaan sehari-hari.
Fakta Unik dan Tips NVM yang Bikin Kamu Makin Pro!¶
Selain perintah dasar, ada beberapa fakta menarik dan tips menggunakan NVM yang bisa meningkatkan efektivitas kerja kamu:
Fakta Unik: NVM Itu Script Shell Biasa
NVM (yang versi Unix-like) itu sebagian besar hanya kumpulan script shell. Ini yang bikin dia ringan dan mudah di-debug kalau ada masalah (kamu bisa baca langsung kodenya!). Mekanismenya yang memanipulasi PATH variabel shell secara per-session juga berkat sifatnya ini. Jadi, dia nggak macem-macem ke sistem inti kamu.
Tips: Gunakan File .nvmrc
Ini adalah fitur yang sangat powerful kalau kamu kerja dengan banyak proyek. Kamu bisa membuat sebuah file bernama .nvmrc di root directory proyek kamu. Isi file itu cuma nomor versi Node.js yang dibutuhkan proyek tersebut, misalnya:
18.17.1
Atau bisa juga pakai alias:
lts/gallium
Nah, nanti kalau kamu masuk ke directory proyek itu di terminal, kamu cukup ketik nvm use. NVM akan otomatis membaca isi file .nvmrc dan switch ke versi Node.js yang tertera di sana (kalau versi itu belum terinstall, NVM akan memberitahu kamu). Ini bikin workflow sangat lancar dan memastikan semua orang di tim menggunakan versi yang sama untuk proyek tersebut.
Tips: Hati-hati dengan sudo npm install -g
Ketika menggunakan NVM, kamu sangat disarankan untuk TIDAK menggunakan sudo saat menginstall paket global (npm install -g). NVM mengelola permission di dalam direktori ~/.nvm miliknya, sehingga command npm install -g seharusnya sudah bisa berjalan tanpa sudo setelah kamu mengaktifkan versi Node.js dengan nvm use. Menggunakan sudo bisa menyebabkan paket global terinstall di lokasi sistem global yang non-NVM, atau bahkan merusak permission di dalam direktori NVM itu sendiri.
Tips: Menginstall Paket Global untuk Versi Spesifik
Setiap kali kamu mengaktifkan sebuah versi Node.js menggunakan nvm use, paket global yang kamu install dengan npm install -g <package-name> akan terinstall khusus untuk versi Node.js itu. Jadi, paket global di Node.js versi 16 akan berbeda dengan paket global di Node.js versi 18, kecuali kamu menggunakan perintah NVM seperti nvm install <version> --reinstall-packages-from=<another-version> untuk mengcopy paket global dari versi lain saat menginstall versi baru.
Tips: Upgrade NVM Itu Sendiri
Untuk meng-upgrade NVM ke versi terbaru, kamu bisa menjalankan ulang skrip instalasi yang kamu gunakan pertama kali. Skrip itu dirancang untuk bisa meng-update instalasi NVM yang sudah ada tanpa menghapus versi Node.js yang sudah kamu install.
Berikut visualisasi sederhana bagaimana NVM mengelola versi-versi Node.js:
```mermaid
graph LR
A[Terminal Session 1] → B{nvm use 16}
A → C[Proyek A]
B → D[PATH points to ~/.nvm/versions/node/v16]
C → D
E[Terminal Session 2] --> F{nvm use 18}
E --> G[Proyek B]
F --> H[PATH points to ~/.nvm/versions/node/v18]
G --> H
I[Terminal Session 3] --> J{nvm use 20}
I --> K[Proyek C]
J --> L[PATH points to ~/.nvm/versions/node/v20]
K --> L
subgraph NVM Directory (~/.nvm)
M[versions]
M --> N[node]
N --> O[v16]
N --> P[v18]
N --> Q[v20]
end
O,P,Q --- NVM Directory
```
Image just for illustration
Diagram illustrating how NVM manages different Node.js versions by manipulating the PATH environment variable for each terminal session.
Diagram ini menunjukkan bahwa meskipun ada beberapa versi Node.js yang terinstall di direktori NVM, setiap session terminal bisa “melihat” dan menggunakan versi yang berbeda karena NVM mengatur variabel PATH-nya agar menunjuk ke direktori binary versi yang diinginkan untuk session tersebut.
NVM vs. Cara Lain Install Node.js¶
Oke, NVM itu keren. Tapi ada nggak cara lain install Node.js? Tentu saja ada. Mari kita bandingkan sedikit:
- Instalasi Global Langsung: Unduh installer dari website nodejs.org dan install seperti biasa. Ini cara paling gampang kalau kamu yakin hanya butuh satu versi Node.js untuk selamanya di komputer itu. Kelemahannya: sangat sulit dan merepotkan kalau di kemudian hari kamu butuh versi lain atau testing di versi berbeda. Ini metode yang tidak direkomendasikan jika kamu adalah developer aktif yang bekerja di berbagai proyek.
- Menggunakan Package Manager Sistem: Di Linux, kamu bisa install Node.js pakai
apt,yum,brew, dll. Di macOS pakaibrew. Ini juga menginstall satu versi global. Plusnya, update Node.js bisa di-manage bareng update sistem lainnya. Minus: Sama seperti instalasi global langsung, ribet buat mengelola multi-versi. Versi yang disediakan package manager kadang juga bukan yang paling baru. - Manajer Versi Lain (n, Volta, fnm, dll.): NVM bukan satu-satunya Node Version Manager. Ada juga tool lain seperti
n(diinstall via npm, mekanismenya beda dengan NVM Unix-like), Volta, dan fnm (Fast Node Manager). Volta dan fnm adalah alternatif yang lebih baru dan seringkali lebih cepat, dengan pendekatan manajemen versi yang berbeda (misalnya Volta mengatur toolchain per proyek secara otomatis). Meskipun ada alternatif, NVM tetap menjadi yang paling populer dan banyak digunakan di kalangan developer, terutama di lingkungan Unix-like, karena kemudahannya dan komunitasnya yang besar.
Jadi, mengapa NVM sering jadi pilihan utama? Kombinasi antara kemudahan instalasi (di Unix-like), simplicity mekanisme kerjanya (manipulasi PATH per-session), dan dukungan .nvmrc untuk workflow per-proyek menjadikannya tool yang sangat praktis dan handal untuk sebagian besar skenario pengembangan Node.js.
Mengatasi Masalah Umum Saat Pakai NVM¶
Kadang, meskipun NVM itu friendly, kamu bisa ketemu masalah kecil. Ini beberapa yang umum dan cara mengatasinya:
nvm: command not found: Ini masalah paling sering dan biasanya terjadi karena NVM belum di-load oleh shell kamu. Pastikan kamu sudah menutup dan membuka kembali terminal setelah instalasi. Cek file profile shell kamu (~/.bashrc,~/.zshrc, dll.) apakah ada baris-baris kode yang ditambahkan oleh skrip instalasi NVM untuk men-source NVM. Kalau tidak ada, coba jalankan ulang skrip instalasi.- Error saat
nvm install: Biasanya ini karena masalah koneksi internet saat mengunduh binary Node.js atau permission di direktori NVM. Pastikan koneksi internet lancar dan user kamu punya izin tulis di direktori~/.nvm. - Paket global hilang setelah switch versi: Ini memang behavior normal. Paket global terikat ke versi Node.js tempat mereka di-install. Kalau kamu switch ke versi lain, kamu harus menginstall ulang paket global yang dibutuhkan untuk versi itu, atau gunakan fitur
nvm reinstall-packages-fromsaat menginstall versi baru. npm install -gmintasudo: Seperti dijelaskan di tips, ini harus dihindari. Pastikan kamu sudah menjalankannvm use <version>sebelum menjalankannpm install -g. Jika masih mintasudo, mungkin ada masalah permission di direktori~/.nvm/versions/node/<version>/lib/node_modules. Kadang ini bisa diperbaiki dengan menjalankanchown -R $(whoami) $(nvm_path)(di Unix-like, hati-hati menggunakanchown).
Sebagian besar masalah NVM bisa diselesaikan dengan memeriksa instalasi NVM di profile shell kamu atau memastikan kamu menjalankan perintah NVM sebelum menjalankan perintah Node/npm.
Kesimpulan: NVM Adalah Teman Baik Developer Node.js¶
Dari penjelasan panjang lebar di atas, jelas kan kalau NVM itu bukan cuma tool tambahan, tapi hampir jadi keharusan kalau kamu serius ngoding pakai Node.js dan kerja di lingkungan yang realistis (punya banyak proyek, kerja tim, atau sering nyobain versi baru).
NVM bikin proses mengelola berbagai versi Node.js jadi super gampang, menghilangkan sakit kepala karena konflik versi, dan meningkatkan fleksibilitas serta efisiensi workflow pengembangan kamu. Dengan perintah-perintah dasar yang intuitif dan fitur tambahan seperti .nvmrc, NVM benar-benar mempermudah hidup developer.
Jadi, kalau kamu belum pakai NVM, tunggu apa lagi? Install sekarang juga dan rasakan bedanya. Proyek-proyek lama dan baru kamu akan berterima kasih padamu!
Punya pengalaman pakai NVM? Atau mungkin kamu pakai version manager lain yang menurutmu lebih bagus? Share dong pengalaman atau pertanyaanmu di kolom komentar di bawah! Yuk, kita diskusi biar makin pinter bareng!
Posting Komentar