Skip to content

Beralih Versi Node dengan NVM

Penggunaan Dasar

NVM menyediakan perintah yang sederhana namun kuat untuk beralih di antara berbagai versi Node.js. Perintah paling dasar adalah nvm use, yang memungkinkan Anda mengaktifkan versi Node.js yang terinstal.

Melihat Versi Node yang Tersedia

Sebelum beralih, Anda dapat menggunakan perintah nvm ls untuk melihat versi Node.js mana yang terinstal.

bash
nvm ls

nvm ls

Berbagai Cara untuk Beralih Versi

Menggunakan Nomor Versi Lengkap

Anda dapat menentukan nomor versi lengkap:

Sebagai contoh, untuk menggunakan Node.js v24.0.2:

bash
$ nvm use 24.0.2
Now using node v24.0.2 (64-bit)

nvm ls

Menggunakan Nomor Versi Mayor

Cukup tentukan nomor versi mayor, dan NVM akan menggunakan versi terinstal terbaru dari versi mayor tersebut:

bash
$ nvm use 14
Using node v14.17.6 (npm v6.14.15)

Menggunakan Alias

NVM memiliki beberapa alias khusus bawaan:

bash
# Gunakan versi stabil terbaru
$ nvm use node
Now using node v16.14.0 (npm v8.3.1)

# Gunakan versi LTS terbaru
$ nvm use lts/*
Now using node v16.13.2 (npm v8.1.2)

# Gunakan versi LTS tertentu
$ nvm use lts/gallium
Now using node v16.13.2 (npm v8.1.2)

Menentukan Arsitektur (Hanya Windows)

Di sistem Windows, Anda dapat menentukan apakah akan menggunakan versi 32-bit atau 64-bit:

bash
$ nvm use 14.17.0 32
$ nvm use 16.14.0 64

Beralih Versi Otomatis dengan File .nvmrc

Buat file bernama .nvmrc di direktori root proyek Anda dengan nomor versi Node.js sebagai isinya. Kemudian, cukup jalankan perintah nvm use (tanpa argumen), dan NVM akan membaca versi dari file .nvmrc dan beralih ke versi tersebut secara otomatis.

  1. Buat file .nvmrc:
bash
$ echo "16.14.0" > .nvmrc
  1. Jalankan di direktori proyek:
bash
$ nvm use
Found '/path/to/project/.nvmrc' with version <16.14.0>
Now using node v16.14.0 (npm v8.3.1)

Contoh isi file .nvmrc:

  • 16.14.0 - Versi tepat
  • 16 - Versi terbaru dari versi mayor
  • lts/* - Versi LTS terbaru
  • node - Versi Node.js terbaru

Menetapkan Versi Node.js Default

Anda dapat menetapkan versi Node.js default yang akan secara otomatis digunakan setiap kali Anda membuka terminal baru:

bash
$ nvm alias default 16.14.0
default -> 16.14.0 (-> v16.14.0)

Dengan cara ini, bahkan jika Anda tidak menjalankan perintah nvm use, versi yang ditentukan akan digunakan secara default.

Pertimbangan Saat Beralih Versi

Manajemen Paket Global

Saat beralih versi Node.js, paket yang diinstal secara global tidak secara otomatis bermigrasi. Setiap versi Node.js memiliki set paket globalnya sendiri yang terpisah.

Jika Anda ingin menyalin semua paket global dari satu versi ke versi lain, Anda dapat menggunakan:

bash
# Salin paket global dari v14.17.0 ke v16.14.0
$ nvm install 16.14.0 --reinstall-packages-from=14.17.0

Menggunakan Versi Lain Sementara

Jika Anda hanya ingin menjalankan perintah dengan versi Node.js yang berbeda tanpa beralih versi sesi saat ini, Anda dapat menggunakan nvm run:

bash
$ nvm run 14.17.0 app.js

Memeriksa Versi Saat Ini

Untuk memeriksa versi Node.js mana yang saat ini digunakan:

bash
$ nvm current
v16.14.0

Masalah Umum dan Solusi

Variabel Lingkungan Hilang Setelah Beralih

Masalah: Setelah beralih versi, variabel lingkungan yang sebelumnya diatur seperti NODE_PATH mungkin hilang. Solusi: Tambahkan pengaturan variabel lingkungan ke file .bashrc atau .zshrc Anda.

Beralih Versi Otomatis

Jika Anda ingin secara otomatis beralih ke versi Node.js yang ditentukan dalam file .nvmrc saat memasuki direktori proyek, Anda dapat menambahkan berikut ke .bashrc atau .zshrc Anda:

Untuk Bash:

bash
cdnvm() {
    command cd "$@" || return $?
    nvm_path="$(nvm_find_up .nvmrc | tr -d '\n')"
    
    if [ -e "$nvm_path/.nvmrc" ]; then
        declare default_version;
        default_version="$(nvm version default)"
        
        declare nvmrc_version;
        nvmrc_version="$(nvm version "$(cat "$nvm_path/.nvmrc")")"
        
        if [ "$nvmrc_version" = "N/A" ]; then
            echo "Warning: $(cat "$nvm_path/.nvmrc") version not installed"
        elif [ "$nvmrc_version" != "$default_version" ]; then
            nvm use > /dev/null
        fi
    fi
}
alias cd='cdnvm'

Untuk Zsh:

bash
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

Praktik Terbaik

  1. Buat file .nvmrc untuk setiap proyek: Memastikan anggota tim menggunakan versi Node.js yang sama
  2. Secara teratur memperbarui ke versi LTS: Versi LTS lebih stabil dan cocok untuk lingkungan produksi
  3. Gunakan semantic versioning: Tentukan versi tepat dalam file .nvmrc untuk menghindari masalah kompatibilitas
  4. Tetapkan versi default yang sesuai: Tetapkan versi Node.js default untuk pengembangan sehari-hari

Parameter Perintah nvm use

ParameterDeskripsi
<version>Menentukan versi Node.js yang akan digunakan
nodeMenggunakan versi terbaru Node.js
lts/*Menggunakan versi dukungan jangka panjang terbaru
lts/<name>Menggunakan versi dukungan jangka panjang tertentu
<version> <architecture>(Hanya Windows) Menentukan apakah akan menggunakan versi 32 atau 64-bit

Dengan metode ini, Anda dapat dengan mudah beralih di antara berbagai versi Node.js untuk memenuhi kebutuhan pengembangan proyek yang berbeda.

NVM - Manajer Versi Node untuk Windows, Linux, dan macOS