NVM 安裝指南

NVM 安裝指南

簡介

NVM(Node Version Manager)是一個基於 POSIX Shell 的 Node.js 版本管理工具,可讓你在同一台機器上快速安裝並切換不同版本的 Node.js。

支援平台: Unix、macOS、Windows WSL

提示
NVM 不支援 Windows 原生環境。Windows 使用者可改用 nvm-windows


安裝 NVM

使用 curl 安裝(推薦)

1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

使用 wget 安裝

1
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

安裝腳本會將 NVM 儲存庫複製到 ~/.nvm,並自動在 Shell 設定檔(~/.bashrc~/.zshrc~/.profile)中加入以下內容:

1
2
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

設定 Shell 環境

安裝完成後,重新載入 Shell 設定檔使 nvm 指令生效:

Shell 指令
bash source ~/.bashrc
zsh source ~/.zshrc
ksh . ~/.profile

或直接關閉並重新開啟終端機視窗。


驗證安裝

1
command -v nvm

若顯示 nvm,表示安裝成功。

提示
請使用 command -v nvm 而非 which nvm,因為 nvm 是一個 Shell 函式,而非可執行的二進位檔案。


基本使用

安裝 Node.js

1
2
3
4
5
6
7
8
# 安裝最新版本
nvm install node

# 安裝指定版本
nvm install 20.11.0

# 安裝最新 LTS 版本
nvm install --lts

切換 Node.js 版本

1
2
3
4
5
6
7
8
# 切換到最新版本
nvm use node

# 切換到指定版本
nvm use 20.11.0

# 切換到最新 LTS 版本
nvm use --lts

列出版本

1
2
3
4
5
6
7
8
# 列出本機已安裝的版本
nvm ls

# 列出遠端可安裝的版本
nvm ls-remote

# 僅列出遠端 LTS 版本
nvm ls-remote --lts

設定預設版本

新開啟的終端機會使用預設版本,可透過以下指令設定:

1
2
3
4
5
# 設定最新安裝版本為預設
nvm alias default node

# 設定特定版本為預設
nvm alias default 20

查看目前使用版本

1
nvm current

取得執行檔路徑

1
nvm which 20.11.0

常用指令速查

指令 說明
nvm install node 安裝最新 Node.js 版本
nvm install --lts 安裝最新 LTS 版本
nvm install <version> 安裝指定版本
nvm uninstall <version> 解除安裝指定版本
nvm use <version> 切換至指定版本
nvm use --lts 切換至最新 LTS 版本
nvm ls 列出本機已安裝版本
nvm ls-remote 列出遠端可安裝版本
nvm current 顯示目前使用的版本
nvm alias default <version> 設定預設版本
nvm deactivate 還原 PATH 至 nvm 啟用前狀態
nvm cache clear 清除已快取的下載檔案

使用 .nvmrc 管理專案版本

在專案根目錄建立 .nvmrc 檔案,可讓團隊成員快速切換至一致的 Node.js 版本。

1
2
3
4
5
6
7
8
# 指定版本
echo "20.11.0" > .nvmrc

# 使用最新 LTS 版本
echo "lts/*" > .nvmrc

# 使用最新版本
echo "node" > .nvmrc

設定完成後,在專案目錄執行以下指令即可自動切換版本:

1
2
3
nvm use
# Found '/path/to/project/.nvmrc' with version <20.11.0>
# Now using node v20.11.0 (npm v10.2.4)

若版本尚未安裝,執行 nvm install 會自動安裝並切換:

1
nvm install

版本升級(保留套件)

安裝新版本時,可同時遷移舊版本已安裝的全域套件:

1
2
3
4
5
# 安裝最新 LTS 並遷移套件
nvm install --lts --reinstall-packages-from=current

# 從指定版本遷移套件
nvm install 20 --reinstall-packages-from=18

解除安裝 NVM

1
2
3
4
# 移除 nvm 指令與安裝目錄
nvm_dir="${NVM_DIR:-~/.nvm}"
nvm unload
rm -rf "$nvm_dir"

接著手動編輯 ~/.bashrc(或對應的 Shell 設定檔),移除以下幾行:

1
2
3
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion

常見問題排查

nvm: command not found

安裝後若找不到 nvm 指令,請重新載入 Shell 設定檔,或重新開啟終端機視窗。

1
2
source ~/.bashrc   # bash
source ~/.zshrc # zsh

WSL 無法連線至 raw.githubusercontent.com

若在 WSL 環境中遇到 DNS 解析失敗,可嘗試以下修正:

1
2
3
4
5
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf

macOS zsh 找不到 .zshrc

macOS 10.15 以後預設使用 zsh,若尚未建立 .zshrc,請先執行:

1
touch ~/.zshrc

然後重新執行安裝腳本。

安裝失敗時清除快取

1
nvm cache clear

參考資料