本文适用于 Windows 11。
一、介绍
fnm 是 Rust 编写的 Node.js 版本管理器,支持 .nvmrc 和 .node-version 文件,进入项目目录时自动切换版本。
二、安装 fnm
通过 WinGet 安装,安装包约 3~4M,需从 Github 下载,建议开启代理:
# powershell
winget install Schniz.fnm三、配置 PowerShell
fnm 需要初始化 shell 才能自动切换版本。打开 PowerShell,编辑配置文件:
# powershell
notepad $PROFILE如果提示找不到路径,手动创建目录:
# powershell
New-Item -ItemType Directory -Force -Path (Split-Path $PROFILE)
# 查看路径:
echo $PROFILE目录创建好后,再运行 notepad $PROFILE 。
此时笔记本会提示“文件不存在,是否创建”,选择“是”即可。
在文件中添加:
fnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression保存后重启 PowerShell,运行 fnm --version 确认安装成功。
如果 PowerShell 阻止脚本执行,先运行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser四、安装 Node 并切换
安装最新 LTS 版本:
# powershell
fnm install --lts安装指定版本:
# 如果下载 Node 速度慢,可以临时设置国内镜像:
$env:FNM_NODE_DIST_MIRROR = "https://npmmirror.com/mirrors/node/"
fnm install 22手动切换:
fnm use 22让 CMD 和外部程序也能找到 Node:
# 将以下路径加入用户环境变量 Path:
C:\Users\gavin\AppData\Roaming\fnm\aliases\default如果该目录不存在,先运行 fnm default <版本> 创建默认别名,然后再加入 Path。
切换默认版本:
fnm default <版本号>五、项目级版本锁定
在项目根目录创建 .nvmrc,写入版本号:
echo "22" > .nvmrc之后进入该目录,fnm 会自动切换到 Node 22。
六、卸载 fnm
如果通过 WinGet 安装,用以下命令卸载:
# powershell
winget uninstall Schniz.fnm清理残留目录
WinGet 卸载后可能留下 fnm 的数据目录。Windows 上 fnm 管理的 Node 版本通常存放在 %APPDATA%\fnm 或 %LOCALAPPDATA%\fnm,部分环境也可能使用 %USERPROFILE%\.fnm。删除以下文件夹(如果存在):
Remove-Item -Recurse -Force "$env:USERPROFILE\.fnm" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:APPDATA\fnm" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\fnm" -ErrorAction SilentlyContinue清理 PowerShell 配置
删除之前添加的 fnm 初始化命令即可。
清理环境变量 Path
删除 Path 中的默认别名xxx\fnm\aliases\default
验证卸载
fnm --version