Komputer kita bisa saja menampung lebih dari satu proyek Node.js sekaligus: tugas kantor yang sudah berjalan dua tahun, proyek sampingan yang baru dimulai, dan contoh kode dari Course ini. Masing-masing bisa membutuhkan versi runtime yang berbeda, dan memasang-ulang Node.js setiap berpindah proyek jelas bukan solusi. Di sinilah version manager berperan: alat yang memasang banyak versi Node.js sekaligus lalu memindahkan aktivasinya dengan satu perintah. Chapter ini memperkenalkan tiga version manager populer, lalu menutup dengan cara mengunci versi di tingkat proyek.

Mengapa Versi Perlu Dikelola #

Tiga situasi paling umum yang menuntut pengelolaan versi:

  • Proyek lawas — aplikasi yang dimulai saat Node.js 20 menjadi LTS bisa saja bergantung pada perilaku yang berubah di versi 24.
  • Konsistensi tim — bila satu anggota memakai Node.js 22 dan anggota lain memakai 24, hasil uji di komputer berbeda bisa tidak seragam.
  • Server produksi — versi di komputer lokal sebaiknya menyamai versi di server tempat aplikasi berjalan, supaya perilaku yang kita uji sama dengan yang dirasakan pengguna.

Tanpa version manager, kita menangani tiga situasi itu dengan memasang-ulang installer — lambat, rawan salah, dan tidak bisa berpindah cepat. Dengan version manager, berpindah versi sama ringannya dengan berganti direktori kerja.

Tiga Version Manager Populer #

Version ManagerCiri khasHalaman proyek
nvmpaling banyak dipakai, berbasis shell script, kaya opsinvm-sh/nvm
fnmditulis dengan Rust, cepat, mendukung berkas .node-versionSchniz/fnm
Voltamengunci versi per proyek, mendukung Windows secara bawaanvolta-cli/volta

Ketiganya menyelesaikan masalah yang sama; pilihan di antaranya adalah soal selera dan sistem operasi. Sebagai gambaran pola pemakaiannya, berikut perintah-perintah nvm yang paling sering dipakai:

bash
nvm install --lts
nvm install 22
nvm use 22
nvm ls

Empat perintah tersebut secara berurutan: memasang versi LTS terbaru, memasang versi mayor 22, mengaktifkan versi 22 pada shell saat ini, dan menampilkan daftar versi yang sudah terpasang. Padanannya pada fnm berbentuk fnm install 22 dan fnm use 22, sedangkan Volta memakai volta install node@22. Detail tiap perintah sebaiknya dibaca langsung dari dokumentasi proyek masing-masing karena opsi mereka terus berkembang.

Mengunci Versi Proyek dengan .nvmrc #

Version manager menyelesaikan masalah berpindah versi; sisa masalahnya adalah memastikan setiap orang memakai versi yang sama untuk proyek yang sama. nvm menyediakan berkas .nvmrc untuk itu — sebuah berkas kecil di akar proyek yang isinya cukup nomor versi:

text .nvmrc
24

Isi .nvmrc boleh berupa nomor mayor (24), versi lengkap (24.21.0), atau kode jalur rilis (lts/*). Ketika kita menjalankan nvm use tanpa argumen di dalam folder proyek, nvm membaca berkas ini lalu mengaktifkan versi yang tertulis. Berkas fnm dan Volta punya mekanisme padanan: fnm membaca .node-version dan .nvmrc, sementara Volta mencatat versi proyek pada package.json secara otomatis.

Cara kedua menyatakan kebutuhan versi adalah field engines pada package.json:

json
{
  "engines": {
    "node": ">=24.0.0"
  }
}

Field ini dibaca npm ketika memasang package: bila versi Node.js yang aktif lebih tua dari syarat tersebut, npm menampilkan peringatan. Field engines bersifat menyampaikan syarat, bukan mengganti versi secara otomatis — tugas mengganti tetap milik version manager.

Membaca Versi dan Nama Kode LTS #

Sebagai penutup, mari perkenalkan properti yang akan sering kita lihat di skrip otomatisasi. Object process.release menyimpan informasi rilis runtime, termasuk nama kode LTS untuk versi yang sedang berjalan:

bash
node -p 'process.release.lts'

Output yang Dihasilkan:

text
Krypton

Nilai Krypton adalah nama kode jalur LTS Node.js 24 — setiap jalur LTS mendapat nama kode unsur: Node 18 bernama Hydrogen, 20 bernama Iron, dan 22 bernama Jod. Nama-nama ini mempermudah percakapan (“proyek ini masih di Iron”) tanpa harus menghafal angka. Peta rilis lengkap beserta tanggal dukungannya terdokumentasi di halaman rilis sebelumnya Node.js .

Lingkungan kerja kita kini lengkap: Node.js terpasang, terverifikasi, dan versinya bisa dikelola per proyek. Meski begitu, dunia nyata tidak selalu mulus — terminal yang menolak mengenal node, izin berkas yang menolak instalasi global, atau dua versi yang saling menimpa bisa menghentikan pekerjaan kapan saja. Chapter berikutnya melengkapi bekal kita dengan panduan memecahkan masalah-masalah itu.