fnm 管理 Node.js

fnm 是快速的 Node.js 版本管理器,Rust 编写,比 nvm 速度更快,跨平台支持 Windows/macOS/Linux。

1. 安装 fnm

macOS / Linux

curl -fsSL https://fnm.vercel.app/install | bash

安装完成后,把 shell 配置追加到你的终端配置文件:

bash (~/.bashrc)

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

zsh (~/.zshrc)

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

--use-on-cd:进入包含 .node-version / .nvmrc 的目录自动切换 node 版本。

生效配置:

source ~/.zshrc

Windows

推荐使用 winget / scoop

# winget
winget install Schniz.fnm

PowerShell 配置($PROFILE):

fnm env --use-on-cd | Out-String | Invoke-Expression

重启终端,验证:

fnm --version

2. 常用命令

查看可安装的 Node 版本

# 列出远程可用版本
fnm list-remote

# 只看 LTS 长期支持版
fnm list-remote --lts

安装指定 Node 版本

# 安装 LTS
fnm install --lts

# 安装指定版本
fnm install 22.14.0

# 安装最新
fnm install latest

查看本地已安装版本

fnm list
# 别名:fnm ls

切换 Node 版本

# 临时切换当前终端会话
fnm use 22

# 设置为系统默认版本(新开终端默认使用)
fnm default 22

卸载版本

fnm uninstall 20

设置别名

fnm alias 22.14.0 mynode
fnm use mynode

项目自动版本

在项目根目录创建文件:
.node-version

22.14.0

开启 --use-on-cd 后,cd 进入文件夹自动切换对应 node。

3. 检查环境

node -v
npm -v
which node   # macOS/Linux 应该指向 fnm 管理路径

4. 迁移 nvm 已安装版本(可选)

fnm 可以导入 nvm 缓存:

fnm install --from-nvm

5. 常见问题

  1. 重启终端 node 版本变回系统版本

没有正确添加 eval "$(fnm env --use-on-cd)" 到 shell rc 文件。

  1. Windows git-bash / mingw

fnm 对 git‑bash 支持有限,优先使用 PowerShell。

  1. 国内下载慢
    设置镜像环境变量再 install:
export FNM_NODE_DIST_MIRROR=https://npmmirror.com/mirrors/node
fnm install --lts

极简工作流示例

# 1.安装lts
fnm install --lts
# 2.设为默认
fnm default lts
# 3.安装另一个版本用于测试
fnm install 20
# 4.切换到20做测试
fnm use 20
# 5.切回默认
fnm use default