fnm nodejs 版本管理工具:Windows安装

安装

winget默认安装(不推荐)

PowerShell,推荐 winget

winget install Schniz.fnm

默认安装路径:

C:\Users\你的用户名\AppData\Local\Microsoft\WinGet\Packages\Schniz.fnm_xxxx\

winget指定安装路径(推荐)

winget install Schniz.fnm  -l D:\devtools\fnm

安装路径:

D:\devtools\fnm

手动安装

从 https://github.com/Schniz/fnm/releases 下载解压,加入 PATH

卸载

winget uninstall Schniz.fnm

配置环境变量

安装后需在 Shell 配置添加初始化,让终端识别 fnm 命令

修改 用户环境变量:

验证

重启终端,执行

fnm --version

修改node安装路径

fnm 下载的所有 Node 版本 默认存放在(由环境变量 FNM_DIR 控制):

C:\Users\你的用户名\.fnm\

或者

C:\Users\你的用户名\AppData\Roaming\fnm\node-versions

改变 Node 版本存放路径(推荐,必改)

只需要改环境变量 FNM_DIR,跟安装方式无关:
新建一个目录,例如:

D:\devtools\node-versions\

PowerShell 设置系统环境变量(永久,推荐):

[Environment]::SetEnvironmentVariable("FNM_DIR", "D:\devtools\node-versions", "Machine")

PowerShell 设置用户环境变量(永久):

[Environment]::SetEnvironmentVariable("FNM_DIR", "D:\devtools\node-versions", "User")

重启终端,之后:

fnm install 20

所有 Node 都会装到 D 盘,不占 C 盘空间。

让shell加载 fnm env

fnm use 需要先让当前 shell 加载 fnm env 输出的环境变量,它才能”切换” Node 版本。你现在只是把 fnm.exe 放进了 PATH,但没做 shell 集成,所以它找不到用于替换版本的变量。

解决办法:把 fnm 初始化写进 PowerShell 配置文件

1. 打开(或创建)PowerShell 配置文件

在 PowerShell 里执行:

notepad $PROFILE

如果提示文件不存在,先创建它:

New-Item -ItemType File -Path $PROFILE -Force
notepad $PROFILE

2. 在打开的记事本里加入这一行

fnm env --shell powershell | Out-String | Invoke-Expression

保存并关闭记事本。

3. 重新打开 PowerShell(必须新开窗口,旧窗口不生效),然后验证:

fnm env

之后才可以使用切换node版本命令:

fnm use 22.23.3

常见问题

  1. 命令找不到 fnm
    检查 Shell 配置是否添加 eval "$(fnm env)",重启终端或 source ~/.zshrc。

  2. Windows 权限不足
    PowerShell 以管理员身份运行,或把 fnm 目录加入用户 PATH。

  3. 切换目录不自动切换版本
    确认配置有 --use-on-cd,且项目目录存在 .node-version 或 .nvmrc。