Skip to content

Manajemen Versi Node.js

fnm menyediakan fitur manajemen versi yang kuat, memungkinkan Anda untuk dengan mudah beralih di antara beberapa versi Node.js.

Operasi Dasar

Lihat Versi yang Terinstal

bash
fnm list

Contoh output:

* v20.10.0 default
  v18.19.0
  v16.20.2
  • * menunjukkan versi yang sedang digunakan
  • default menunjukkan versi default

Lihat Versi Saat Ini

bash
fnm current

Ganti Versi

bash
# Ganti ke versi tertentu
fnm use 20

# Ganti ke versi spesifik yang tepat
fnm use 20.10.0

# Jika versi belum terinstal, otomatis instal lalu ganti
fnm use 18 --install-if-missing

Versi Default

Tetapkan Versi Default

bash
fnm default 20

Versi default adalah:

  • Versi yang digunakan saat sesi terminal baru dimulai
  • Versi yang digunakan ketika tidak ada file versi

Lihat Versi Default

bash
fnm default

Alias Versi

Alias memungkinkan Anda menetapkan nama yang mudah diingat untuk versi.

Buat Alias

bash
# Tetapkan alias untuk versi
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 old

Gunakan Alias

bash
# Ganti versi melalui alias
fnm use default
fnm use legacy

Hapus Alias

bash
fnm unalias legacy

Penggantian Versi Otomatis

fnm dapat secara otomatis mengganti versi Node.js berdasarkan direktori proyek.

Aktifkan Penggantian Otomatis

Tambahkan --use-on-cd ke konfigurasi Shell:

bash
eval "$(fnm env --use-on-cd)"

Buat File Versi

Buat file .node-version atau .nvmrc di root proyek:

bash
# Menggunakan .node-version (direkomendasikan)
echo "20" > .node-version

# Atau menggunakan .nvmrc (kompatibel dengan nvm)
echo "v18.17.0" > .nvmrc

Format File Versi

.node-version mendukung format berikut:

20           # Versi mayor, gunakan 20.x.x terbaru
20.10        # Versi minor, gunakan 20.10.x terbaru
20.10.0      # Versi tepat
lts/iron     # Nama versi LTS

Strategi Penguraian File Versi

fnm mendukung dua strategi penguraian file versi:

bash
# local (default) - Hanya cari di direktori saat ini
fnm env --version-file-strategy=local

# recursive - Cari secara rekursif di direktori induk
fnm env --version-file-strategy=recursive

Dukungan engines package.json

fnm dapat membaca bidang engines.node dari package.json:

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

Diaktifkan secara default, dapat dinonaktifkan melalui variabel lingkungan:

bash
export FNM_RESOLVE_ENGINES=false

Praktik Terbaik Manajemen Versi

1. Penguncian Versi Tingkat Proyek

Buat file .node-version di setiap proyek:

bash
cd my-project
echo "20" > .node-version
fnm install
fnm use

2. Kolaborasi Tim

Tambahkan .node-version ke Git:

bash
git add .node-version
git commit -m "chore: tambahkan .node-version"

3. Konfigurasi CI/CD

Gunakan fnm di lingkungan CI/CD:

yaml
# GitHub Actions
- name: Instal fnm
  run: curl -fsSL https://fnm.vercel.app/install | bash

- name: Instal Node.js
  run: fnm install && fnm use

4. Pengembangan Multi-Versi

bash
# Instal beberapa versi
fnm install 20
fnm install 18
fnm install 16

# Tetapkan alias untuk kemudahan penggantian
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old

# Gunakan versi berbeda di proyek berbeda
cd project-new && fnm use current
cd project-old && fnm use legacy

Hapus Versi

bash
# Hapus versi tertentu
fnm uninstall 16.20.2

# Hapus melalui alias (akan menghapus versi dan semua alias terkait)
fnm uninstall old

Masalah Umum

Perintah node Tidak Diperbarui Setelah Penggantian Versi

Pastikan konfigurasi Shell benar:

bash
# Periksa path node
which node

# Harus mengarah ke direktori fnm
# ~/.fnm/node-versions/.../bin/node

Penggantian Otomatis Tidak Berfungsi

  1. Konfirmasi --use-on-cd ditambahkan ke konfigurasi Shell
  2. Konfirmasi file versi ada
  3. Muat ulang konfigurasi Shell

Prioritas File Versi

fnm mencari versi dalam urutan berikut:

  1. Versi yang ditentukan di command line
  2. File .node-version
  3. File .nvmrc
  4. package.json engines.node
  5. Versi default

Tautan Terkait