Skip to content

Quản Lý Phiên Bản Node.js

fnm cung cấp các tính năng quản lý phiên bản mạnh mẽ, cho phép bạn dễ dàng chuyển đổi giữa nhiều phiên bản Node.js.

Hoạt Động Cơ Bản

Xem Các Phiên Bản Đã Cài Đặt

bash
fnm list

Ví dụ đầu ra:

* v20.10.0 default
  v18.19.0
  v16.20.2
  • * chỉ phiên bản đang được sử dụng
  • default chỉ phiên bản mặc định

Xem Phiên Bản Hiện Tại

bash
fnm current

Chuyển Đổi Phiên Bản

bash
# Chuyển sang phiên bản cụ thể
fnm use 20

# Chuyển sang phiên bản chính xác cụ thể
fnm use 20.10.0

# Nếu phiên bản chưa được cài đặt, tự động cài đặt rồi chuyển đổi
fnm use 18 --install-if-missing

Phiên Bản Mặc Định

Đặt Phiên Bản Mặc Định

bash
fnm default 20

Phiên bản mặc định là:

  • Phiên bản được sử dụng khi một phiên terminal mới bắt đầu
  • Phiên bản được sử dụng khi không có tệp phiên bản

Xem Phiên Bản Mặc Định

bash
fnm default

Alias Phiên Bản

Alias cho phép bạn đặt các tên dễ nhớ cho các phiên bản.

Tạo Alias

bash
# Đặt alias cho phiên bản
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 old

Sử Dụng Alias

bash
# Chuyển đổi phiên bản qua alias
fnm use default
fnm use legacy

Xóa Alias

bash
fnm unalias legacy

Tự Động Chuyển Đổi Phiên Bản

fnm có thể tự động chuyển đổi phiên bản Node.js dựa trên thư mục dự án.

Bật Tự Động Chuyển Đổi

Thêm --use-on-cd vào cấu hình Shell:

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

Tạo Tệp Phiên Bản

Tạo tệp .node-version hoặc .nvmrc trong thư mục gốc dự án:

bash
# Sử dụng .node-version (khuyến nghị)
echo "20" > .node-version

# Hoặc sử dụng .nvmrc (tương thích với nvm)
echo "v18.17.0" > .nvmrc

Định Dạng Tệp Phiên Bản

.node-version hỗ trợ các định dạng sau:

20           # Phiên bản chính, sử dụng mới nhất 20.x.x
20.10        # Phiên bản phụ, sử dụng mới nhất 20.10.x
20.10.0      # Phiên bản chính xác
lts/iron     # Tên phiên bản LTS

Chiến Lược Phân Tích Tệp Phiên Bản

fnm hỗ trợ hai chiến lược phân tích tệp phiên bản:

bash
# local (mặc định) - Chỉ tìm kiếm trong thư mục hiện tại
fnm env --version-file-strategy=local

# recursive - Tìm kiếm đệ quy các thư mục cha
fnm env --version-file-strategy=recursive

Hỗ Trợ engines Của package.json

fnm có thể đọc trường engines.node từ package.json:

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

Được bật theo mặc định, có thể được tắt thông qua biến môi trường:

bash
export FNM_RESOLVE_ENGINES=false

Phương Pháp Tốt Nhất Về Quản Lý Phiên Bản

1. Khóa Phiên Bản Ở Cấp Dự Án

Tạo tệp .node-version trong mỗi dự án:

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

2. Cộng Tác Nhóm

Thêm .node-version vào Git:

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

3. Cấu Hình CI/CD

Sử dụng fnm trong môi trường CI/CD:

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

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

4. Phát Triển Đa Phiên Bản

bash
# Cài đặt nhiều phiên bản
fnm install 20
fnm install 18
fnm install 16

# Đặt alias để dễ dàng chuyển đổi
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old

# Sử dụng các phiên bản khác nhau trong các dự án khác nhau
cd project-new && fnm use current
cd project-old && fnm use legacy

Gỡ Cài Đặt Phiên Bản

bash
# Gỡ cài đặt phiên bản cụ thể
fnm uninstall 16.20.2

# Gỡ cài đặt qua alias (sẽ xóa phiên bản và tất cả alias liên quan)
fnm uninstall old

Vấn Đề Thường Gặp

Lệnh node Không Cập Nhật Sau Khi Chuyển Đổi Phiên Bản

Đảm bảo cấu hình Shell đúng:

bash
# Kiểm tra đường dẫn node
which node

# Nên trỏ đến thư mục fnm
# ~/.fnm/node-versions/.../bin/node

Tự Động Chuyển Đổi Không Hoạt Động

  1. Xác nhận --use-on-cd được thêm vào cấu hình Shell
  2. Xác nhận tệp phiên bản tồn tại
  3. Tải lại cấu hình Shell

Ưu Tiên Tệp Phiên Bản

fnm tìm kiếm các phiên bản theo thứ tự sau:

  1. Phiên bản được chỉ định trên dòng lệnh
  2. Tệp .node-version
  3. Tệp .nvmrc
  4. package.json engines.node
  5. Phiên bản mặc định

Liên Kết Liên Quan