fnm

名称、版本与用途

  • 名称:Fast Node Manager(fnm)
  • 当前版本:1.39.0
  • 路径:~/.local/share/fnm/fnm
  • 用途:安装、切换和固定 Node.js 版本。

当前 Node 状态:

当前:24.14.1
已安装:22.13.0、24.14.1、system
默认:24.14.1(lts-latest)

基本语法(Synopsis)

fnm [OPTIONS] <COMMAND> [ARGS]

[] 表示可选项,... 表示可重复;大写名称表示需要替换的参数。

当前安装与更新

当前使用 fnm 官方安装器的标准 Linux 目录,并由本地 terminal-setup 脚本配置:

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

重新运行官方安装器可更新 fnm;--skip-shell 避免安装器重复修改已经人工维护的 .zshrc。

更新后:

fnm --version
exec zsh

数据与项目版本文件

  • 程序和 Node 版本:~/.local/share/fnm/
  • 项目版本文件:.node-version、.nvmrc
  • 当前环境变量:FNM_DIR 已设置。
  • Node 全局包位于各 Node 版本自己的安装目录。

zsh 启动集成

是。.zshrc 把 fnm 目录加入 PATH,并执行:

eval "$(fnm env --shell zsh)"
source <(fnm completions --shell zsh)

当前没有使用 --use-on-cd,所以进入含 .node-version 的目录时不会由这个 hook 自动切换。若需要自动切换,可将初始化改为:

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

基本功能与推荐用法

fnm list
fnm list-remote --lts
fnm install --lts
fnm install 22
fnm use 22
fnm default 22
fnm current
fnm exec --using=22 node --version

推荐在项目中提交 .node-version,例如:

24.14.1

精确版本比 lts-latest 更适合可重复构建。切换 Node 后,检查 npm/pnpm 全局工具是否仍在当前版本中安装。

示例中的选项、参数与子命令

本表解释本页示例实际出现的选项、参数、子命令及必要的辅助命令语法。

语法元素含义
env输出用于配置当前 shell 的环境变量。
completions生成 shell 补全脚本。
--shell zsh指定输出适用于 zsh。
--use-on-cd进入目录时根据版本文件自动切换 Node.js。
list / list-remote列出本地或远端可用版本。
--lts选择长期支持版本。
install VERSION安装指定 Node.js 版本。
use VERSION在当前环境使用指定版本。
default VERSION设置默认版本。
current显示当前 Node.js 版本。
exec在指定 Node.js 版本环境中运行命令。
--using=VERSION为 exec 指定 Node.js 版本。
curl -fsSL下载脚本:失败即报错、静默但显示错误、跟随重定向。
bash -s -- --skip-shell从标准输入执行脚本,并把 —skip-shell 传给脚本。
--version显示 fnm 版本。

官方资料