banner
约 600 字
2 分钟

fnm 使用教程:秒切 Node.js 版本

摘要

fnm 是 Rust 写的快速 Node.js 版本管理器,跨平台且比 nvm 快。本教程依据官方文档,介绍三平台安装与 --use-on-cd 自动切换、install/use/default 常用命令、.node-version 与 .nvmrc 项目固定版本,以及从 nvm 迁移的命令对照表。

fnm 使用教程:快速切换 Node.js 版本

项目 A 要 Node 18,项目 B 要 Node 22,全局只能装一个版本怎么办?版本管理器就是解药。fnm(Fast Node Manager)是 Rust 写的新一代 Node 版本管理器,比老牌 nvm 快一个数量级,一条命令装好、自动按项目切换版本。本教程依据 fnm 官方仓库文档(github.com/Schniz/fnm)整理。

一、安装

bash
# Windows (scoop)
scoop install fnm

# macOS (brew)
brew install fnm

# Linux 官方脚本
curl -fsSL https://fnm.vercel.app/install | bash

安装脚本会提示你把初始化命令加进 Shell 配置(~/.bashrc / ~/.zshrc / PowerShell $PROFILE):

bash
eval "$(fnm env --use-on-cd)"     # bash/zsh
fnm env --use-on-cd | Out-String | Invoke-Expression   # PowerShell

--use-on-cd 是灵魂参数:进入含版本文件的目录时自动切换 Node 版本

二、日常使用

bash
fnm install 22        # 安装 Node 22
fnm install 18        # 再装一个 18
fnm list              # 已装版本
fnm use 22            # 切换当前会话版本
fnm default 22        # 设默认版本
node -v               # 验证

三、项目自动切换(.node-version / .nvmrc)

在项目根目录放一个 .node-version 文件(或 nvm 生态的 .nvmrc,fnm 两者都认):

纯文本
22.11.0

由于开了 --use-on-cdcd 进这个目录就自动切到该版本,出来恢复默认。团队成员克隆项目后行为一致,彻底告别"在我机器上是好的"。

四、nvm 老用户迁移

nvm

fnm

nvm install 22

fnm install 22

nvm use 22

fnm use 22

nvm alias default 22

fnm default 22

nvm ls

fnm list

命令几乎一一对应,.nvmrc 直接兼容。fnm 的优势:安装快(单二进制)、cd 切换快(nvm 的 hook 是出了名的拖慢 Shell)、跨 Windows/macOS/Linux。

五、与其他工具的对比

  • nvm 只支持 macOS/Linux,Windows 要用 nvm-windows(独立项目)

  • fnm 三平台原生支持,Windows 下配合 Scoop 安装体验最好

  • Volta 也是不错的替代品,特点是把版本"钉"在 package.json 里

个人推荐 fnm:快、跨平台、配置最少。

六、总结

需求

命令

装版本

fnm install 22

切版本

fnm use 22

默认版本

fnm default 22

项目固定版本

项目根目录放 .node-version

自动切换

初始化时加 --use-on-cd

版本管理器配好后,node -v 再也不会背叛你——每个项目都老老实实用它声明的版本。

END