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 | 启用 Corepack | false |
--resolve-engines | 解析 package.json 中的 engines.node | true |
核心命令
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 --usefnm 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-missingfnm list
列出本地已安装的 Node.js 版本。
bash
fnm list [OPTIONS]别名: ls
示例:
bash
fnm list输出示例:
* v20.10.0 default
v18.19.0
v16.20.2fnm 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 --latestfnm uninstall
卸载 Node.js 版本。
bash
fnm uninstall [OPTIONS] [VERSION]别名: uni
示例:
bash
# 卸载指定版本
fnm uninstall 16.20.2
# 通过别名卸载
fnm uninstall defaultWARNING
如果提供的是别名,fnm 会删除该别名指向的 Node.js 版本,以及指向同一版本的其他别名。
版本管理命令
fnm default
设置或获取默认 Node.js 版本。
bash
fnm default [VERSION]示例:
bash
# 设置默认版本
fnm default 20
# 获取当前默认版本
fnm defaultfnm current
显示当前正在使用的 Node.js 版本。
bash
fnm current示例:
bash
fnm current
# 输出: v20.10.0fnm alias
为版本设置别名。
bash
fnm alias <VERSION> <NAME>示例:
bash
# 设置别名
fnm alias 20 default
fnm alias 18 legacy
# 使用别名
fnm use defaultfnm 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-cdfnm 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命令速查表
| 命令 | 别名 | 说明 |
|---|---|---|
install | i | 安装 Node.js 版本 |
use | - | 切换 Node.js 版本 |
list | ls | 列出已安装版本 |
list-remote | ls-remote | 列出远程版本 |
uninstall | uni | 卸载 Node.js 版本 |
default | - | 设置/获取默认版本 |
current | - | 显示当前版本 |
alias | - | 设置版本别名 |
unalias | - | 删除别名 |
env | - | 输出环境配置 |
completions | - | 输出补全脚本 |
exec | - | 在指定版本中执行命令 |
相关链接
- 安装 Node.js - 详细安装指南
- 版本管理 - 版本管理最佳实践
- install 命令详解 - install 命令详细说明