Skip to content

fnm 命令參考

fnm 提供了一套簡潔而強大的命令行工具來管理 Node.js 版本。

命令概覽

fnm [OPTIONS] <COMMAND>

全局選項

選項說明默認值
--node-dist-mirror <URL>Node.js 下載鏡像https://nodejs.org/dist
--fnm-dir <DIR>fnm 安裝目錄~/.fnm
--log-level <LEVEL>日志級別info
--arch <ARCH>架構覆蓋系統架構
--version-file-strategy <STRATEGY>版本文件解析策略local
--corepack-enabled啟用 Corepackfalse
--resolve-engines解析 package.json 中的 engines.nodetrue

核心命令

fnm install

安裝新的 Node.js 版本。

bash
fnm install [OPTIONS] [VERSION]

參數:

  • VERSION - 版本號,可以是部分 semver 或 LTS 版本名(如 lts/iron

選項:

  • --lts - 安裝最新 LTS 版本
  • --latest - 安裝最新版本
  • --use - 安裝後立即使用該版本
  • --progress <auto|never|always> - 顯示下載進度條

示例:

bash
# 安裝最新 LTS 版本
fnm install --lts

# 安裝最新版本
fnm install --latest

# 安裝指定版本
fnm install 20
fnm install 18.17.0

# 安裝指定 LTS 版本
fnm install lts/iron

# 安裝並立即使用
fnm install 20 --use

fnm use

切換 Node.js 版本。

bash
fnm use [OPTIONS] [VERSION]

選項:

  • --install-if-missing - 如果版本未安裝則自動安裝
  • --silent-if-unchanged - 版本未變化時不輸出消息

示例:

bash
# 使用指定版本
fnm use 20

# 使用最新安裝的版本
fnm use

# 如果未安裝則自動安裝
fnm use 18 --install-if-missing

fnm list

列出本地已安裝的 Node.js 版本。

bash
fnm list [OPTIONS]

別名: ls

示例:

bash
fnm list

輸出示例:

* v20.10.0 default
  v18.19.0
  v16.20.2

fnm list-remote

列出所有可用的遠程 Node.js 版本。

bash
fnm list-remote [OPTIONS]

別名: ls-remote

選項:

  • --filter <FILTER> - 按版本號或 semver 范圍過濾
  • --lts [<NAME>] - 只顯示 LTS 版本
  • --latest - 只顯示最新版本
  • --sort <asc|desc> - 排序方式

示例:

bash
# 列出所有版本
fnm list-remote

# 只列出 LTS 版本
fnm list-remote --lts

# 列出指定 LTS 版本
fnm list-remote --lts=iron

# 過濾版本
fnm list-remote --filter=18

# 只顯示最新版本
fnm list-remote --latest

fnm uninstall

卸載 Node.js 版本。

bash
fnm uninstall [OPTIONS] [VERSION]

別名: uni

示例:

bash
# 卸載指定版本
fnm uninstall 16.20.2

# 通過別名卸載
fnm uninstall default

WARNING

如果提供的是別名,fnm 會刪除該別名指向的 Node.js 版本,以及指向同一版本的其他別名。

版本管理命令

fnm default

設置或獲取默認 Node.js 版本。

bash
fnm default [VERSION]

示例:

bash
# 設置默認版本
fnm default 20

# 獲取當前默認版本
fnm default

fnm current

顯示當前正在使用的 Node.js 版本。

bash
fnm current

示例:

bash
fnm current
# 輸出: v20.10.0

fnm alias

為版本設置別名。

bash
fnm alias <VERSION> <NAME>

示例:

bash
# 設置別名
fnm alias 20 default
fnm alias 18 legacy

# 使用別名
fnm use default

fnm unalias

刪除別名。

bash
fnm unalias <NAME>

示例:

bash
fnm unalias legacy

環境配置命令

fnm env

輸出 Shell 環境變量配置。

bash
fnm env [OPTIONS]

選項:

  • --shell <bash|zsh|fish|powershell> - 指定 Shell 類型
  • --json - 輸出 JSON 格式
  • --use-on-cd - 輸出自動切換版本的腳本

示例:

bash
# 輸出當前 Shell 的配置
fnm env

# 輸出 Bash 配置
fnm env --shell bash

# 輸出 JSON 格式
fnm env --json

# 啟用自動切換版本
fnm env --use-on-cd

fnm completions

輸出 Shell 補全腳本。

bash
fnm completions [OPTIONS]

選項:

  • --shell <bash|zsh|fish|powershell> - 指定 Shell 類型

示例:

bash
# Bash
fnm completions --shell bash >> ~/.bashrc

# Zsh
fnm completions --shell zsh >> ~/.zshrc

# Fish
fnm completions --shell fish > ~/.config/fish/completions/fnm.fish

# PowerShell
fnm completions --shell powershell >> $PROFILE

高級命令

fnm exec

在指定 Node.js 版本環境中執行命令。

bash
fnm exec [OPTIONS] -- <COMMAND>

選項:

  • --using <VERSION> - 指定使用的版本

示例:

bash
# 使用 Node.js 18 執行命令
fnm exec --using=18 -- node --version

# 使用指定版本運行腳本
fnm exec --using=20 -- npm run build

命令速查表

命令別名說明
installi安裝 Node.js 版本
use-切換 Node.js 版本
listls列出已安裝版本
list-remotels-remote列出遠程版本
uninstalluni卸載 Node.js 版本
default-設置/獲取默認版本
current-顯示當前版本
alias-設置版本別名
unalias-刪除別名
env-輸出環境配置
completions-輸出補全腳本
exec-在指定版本中執行命令

相關鏈接