安装
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
常见问题
命令找不到 fnm
检查 Shell 配置是否添加eval "$(fnm env)",重启终端或source ~/.zshrc。Windows 权限不足
PowerShell 以管理员身份运行,或把 fnm 目录加入用户 PATH。切换目录不自动切换版本
确认配置有--use-on-cd,且项目目录存在.node-version或.nvmrc。
