Windows 下手动安装与配置 fnm(Fast Node Manager)完整指南

Windows 下手动安装与配置 fnm(Fast Node Manager)完整指南

fnm(Fast Node Manager)是一个用 Rust 编写的 Node.js 版本管理工具,速度极快,支持跨平台,是 nvm 的优秀替代品。本文记录了在 Windows 上通过 GitHub 下载 zip 包手动安装 fnm,并在 PowerShell、CMD、Git Bash 三种终端中完整配置的全过程。

一、手动下载安装 fnm

1. 下载 fnm-windows.zip

访问 fnm 的 GitHub Releases 页面:

https://github.com/Schniz/fnm/releases

找到最新版本,在 Assets 中下载 fnm-windows.zip

2. 解压到目标目录

将下载的 zip 文件解压到你想要的目录,例如:

E:\Develop\fnm-windows\

解压后,该目录下会有 fnm.exe 文件。

3. 将 fnm 添加到 PATH

打开 系统属性 → 高级系统设置 → 环境变量,在用户变量或系统变量中找到 Path,点击编辑,新建一项,填入 fnm.exe 所在的目录:

E:\Develop\fnm-windows

保存后重新打开终端,输入 fnm --version 验证是否安装成功。
2026-09-10T01:11:18.png

二、配置环境变量

除了 PATH,还需要配置两个环境变量来优化 fnm 的使用体验。

1. 配置 FNM_DIR(自定义安装目录)

默认情况下,fnm 会把下载的 Node.js 版本放在 %APPDATA%\fnm 下。如果你想改到其他盘符(比如 E 盘),可以设置 FNM_DIR 环境变量。

系统属性 → 环境变量 中新建一个变量:

变量名:FNM_DIR
变量值:E:\Develop\fnm-windows

2026-09-10T01:09:06.png

设置后,Node.js 各版本会安装到:

E:\Develop\fnm-windows\node-versions\v24.21.0\installation
💡 也可以只在 PowerShell 的 $PROFILE 中临时设置,但在系统环境变量中设置能保证所有终端都生效。

2. 配置 FNM_NODE_DIST_MIRROR(Node 下载镜像)

fnm 默认从 Node.js 官方源下载,国内访问可能较慢。可以设置 FNM_NODE_DIST_MIRROR 环境变量使用淘宝镜像加速。

系统属性 → 环境变量 中新建一个变量:

变量名:FNM_NODE_DIST_MIRROR
变量值:https://npmmirror.com/mirrors/node/

2026-09-10T01:09:59.png
设置后,fnm install 会从该镜像下载 Node.js,速度会明显提升。

3. 验证环境变量

重新打开一个终端,执行:

fnm env

在输出中应该能看到:

$env:FNM_DIR = "E:\Develop\fnm-windows"
$env:FNM_NODE_DIST_MIRROR = "https://npmmirror.com/mirrors/node/"

2026-09-10T01:12:08.png

三、在 PowerShell 中配置

1. 打开或创建配置文件

if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
notepad $PROFILE

2. 添加初始化命令

在文件末尾添加:

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

--use-on-cd 的作用是:当切换到包含 .node-version.nvmrc 文件的目录时,自动切换到对应 Node 版本。

3. 重新加载配置

. $PROFILE

4. 验证

fnm install v24.21.0
fnm use v24.21.0
node -v

⚠️ 如果提示“禁止运行脚本”

执行一次:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

四、在 CMD 中配置

CMD 没有原生的配置文件机制,但可以通过注册表的 AutoRun 项实现自动初始化。

1. 生成 CMD 初始化脚本

先在 PowerShell 中创建目录并生成脚本文件:

New-Item -ItemType Directory -Path "$env:APPDATA\fnm" -Force
fnm env --use-on-cd --shell cmd | ForEach-Object { '@' + $_ } | Out-File -FilePath "$env:APPDATA\fnm\fnm-init.cmd" -Encoding ASCII
注意:如果 %APPDATA%\fnm 目录不存在会报 DirectoryNotFoundException,所以要先 New-Item 创建。

2. 设置 CMD 的 AutoRun

reg add 'HKCU\Software\Microsoft\Command Processor' /v AutoRun /t REG_SZ /d "call $env:APPDATA\fnm\fnm-init.cmd" /f

3. 验证

关掉所有 CMD 窗口,重新打开一个新的,输入:

node -v

2026-09-10T01:15:42.png
如果能看到版本号,说明配置成功。

🔧 临时手动激活(不想改注册表时)

在任意 CMD 窗口里执行:

FOR /f "tokens=*" %z IN ('fnm env --use-on-cd') DO CALL %z

(写在 .bat 文件里时,%z 要写成 %%z

五、在 Git Bash 中配置

Git Bash 与 Linux 的 bash 类似,通过编辑 ~/.bashrc 实现。

1. 编辑 .bashrc

nano ~/.bashrc

2. 添加初始化命令

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

3. 保存并生效

Ctrl+X,再按 Y 和回车保存。然后:

source ~/.bashrc

或者直接重开一个 Git Bash 窗口。

4. 验证

node -v

2026-09-10T01:16:25.png

六、常见问题

fnm env was not applied in this context

说明当前终端会话没有执行过 fnm env 的输出。解决方式是确认配置文件已正确写入并重新加载,或者手动执行一次初始化命令。

Out-File : 未能找到路径...fnm-init.cmd

说明目标目录不存在。先执行 New-Item -ItemType Directory -Path "$env:APPDATA\fnm" -Force 创建目录。

⚠️ PATH 中出现多个 fnm_multishells 目录

通常是配置文件被多次加载导致。虽然不影响使用,但会让 PATH 变长。可以检查 $PROFILE 里是否写了两遍初始化命令。

⚠️ 中文路径乱码

Windows 下 PowerShell 处理含中文的路径时偶尔会显示乱码,一般不影响功能,但如果某个工具找不到,可以检查是否是这类编码问题。

⚠️ 路径冲突

如果系统里曾经装过 nvm 或独立版 Node.js,PATH 中可能残留旧的 Node 路径。建议清理掉不再使用的,避免和 fnm 管理的版本冲突。

七、fnm 常用命令

命令说明
fnm --version查看 fnm 版本
fnm list / fnm ls列出已安装的所有 Node 版本
fnm list-remote列出所有可远程安装的版本
fnm install <version>安装指定版本,如 fnm install v24.21.0
fnm install --lts安装最新的 LTS 版本
fnm use <version>在当前会话切换到指定版本
fnm default <version>设置默认版本(新终端打开时使用)
fnm current查看当前正在使用的版本
fnm uninstall <version>卸载指定版本
fnm alias <version> <name>给版本起别名,如 fnm alias v24.21.0 default
fnm env输出当前 shell 的环境变量设置
fnm env --use-on-cd输出环境变量并启用目录切换自动换版本
fnm env --shell powershell指定输出为 PowerShell 格式
fnm env --shell cmd指定输出为 CMD 格式
fnm env --shell bash指定输出为 bash 格式
fnm exec --using=<version> <command>用指定版本执行命令,如 fnm exec --using=v22.14.0 node -v
fnm completions --shell <shell>生成 shell 自动补全脚本

典型工作流

# 安装并切换到 LTS
fnm install --lts
fnm use lts

# 为项目锁定版本(在项目根目录生成 .node-version)
node -v > .node-version

# 之后进入该目录时(已配置 --use-on-cd)自动切换
cd my-project
node -v

总结

fnm 在 Windows 上手动安装的核心步骤是:下载 zip 包解压 → 将 fnm.exe 所在目录添加到 PATH → 配置 FNM_DIR 和 FNM_NODE_DIST_MIRROR 环境变量 → 让每个终端在启动时执行一次 fnm env 的输出。不同终端的区别只是“如何自动执行”:

  • PowerShell$PROFILE + Invoke-Expression
  • CMD → 注册表 AutoRun + call
  • Git Bash~/.bashrc + eval

配好之后,fnm 就能在所有终端里无缝管理 Node.js 版本了。

评论

等风等雨等你来