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
# fnm版本号
fnm --version


# 安装最新 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-在指定版本中执行命令

相关链接