在Windows上使用fnm管理多版本Node.js环境
一、前言
fnm(Fast Node Manager)是一个基于 Rust 编写的 Node.js 版本管理工具,相比传统的 nvm,它具有更快的安装速度和更低的内存占用。fnm 支持 Windows、macOS 和 Linux,能够帮助开发者快速切换不同版本的 Node.js 环境。
1、本文主要内容
- 安装 fnm(使用 winget 或手动安装)
- 环境变量配置(PowerShell 和 Git Bash)
- 使用 fnm 安装和管理 Node.js
- 切换 Node.js 版本
- 常用命令说明
- 自动切换 Node.js 版本
- 卸载 fnm
2、本文环境信息
| 工具/环境 | 版本说明 |
|---|---|
| Windows | 10 / 11(64位) |
| fnm | 1.39.0 |
二、fnm 安装(Windows)
1. 方法一:使用 winget(推荐)
打开 PowerShell 或 命令提示符(CMD),运行:
winget install Schniz.fnm
📌 建议将上述命令添加到 PowerShell 配置文件(
$PROFILE)中,实现自动切换 Node.js 版本
2. 方法二:手动安装
- 访问 fnm GitHub Releases 页面:
👉 https://github.com/Schniz/fnm/releases - 下载最新的
fnm-windows.zip文件 - 解压到一个固定目录,例如:
C:\tools\fnm\
配置环境变量
- 添加 fnm 到系统 PATH:
- 打开 系统属性 → 高级 → 环境变量
- 在用户变量或系统变量的
Path中添加:C:\tools\fnm
- 重新打开终端,验证安装:
fnm --version
预期输出:
fnm 1.39.0
三、环境变量配置
1. 初始化 fnm
将以下配置添加到终端配置文件中,实现自动切换 Node.js 版本和设置镜像源(永久生效)。
配置 PowerShell
- 创建或打开 PowerShell 配置文件:
# 创建或打开 PowerShell 配置文件
# 如果文件不存在,会自动创建
New-Item -Path $PROFILE -Type File -Force
# 打开 PowerShell 配置文件
notepad $PROFILE
- 在打开的
$PROFILE文件中添加:
# 设置 fnm 安装目录
$env:FNM_DIR = "C:\tools\fnm"
# 设置 Node.js 下载镜像为国内镜像(npmmirror.com)
$env:FNM_NODE_DIST_MIRROR = "https://npmmirror.com/mirrors/node"
# 初始化 fnm(自动切换版本)
fnm env --use-on-cd | Out-String | Invoke-Expression
💡 也可以使用
code $PROFILE直接用 VS Code 编辑配置文件
配置 Git Bash
- 打开
~/.bash_profile文件:
vi ~/.bash_profile
- 添加以下内容:
# 设置 fnm 安装目录
export FNM_DIR="/c/tools/fnm"
# 设置 Node.js 下载镜像为国内镜像(npmmirror.com)
export FNM_NODE_DIST_MIRROR="https://npmmirror.com/mirrors/node"
# 初始化 fnm(自动切换版本)
eval "$(fnm env --use-on-cd)"
- 使配置生效:
source ~/.bash_profile
2. 验证配置
重新打开终端,运行以下命令验证:
fnm --version
fnm env
预期输出显示 FNM_NODE_DIST_MIRROR 已正确设置为镜像地址。
四、安装 Node.js
1. 安装指定版本
fnm install 22
2. 安装 LTS 版本
fnm install --lts
3. 查看已安装版本
fnm list
预期输出:
* v22.22.1
* v24.14.0 default, lts-latest
……
📌
*表示当前使用的版本
4. 切换 Node.js 版本
fnm use 22
5. 设置默认版本
fnm default 22
五、常用命令
1. 查看帮助
fnm --help
2. 检查当前环境
fnm env
3. 卸载指定版本
fnm uninstall 18
4. 清除缓存
fnm cache clear
5. 验证 Node.js 和 npm
node --version
npm --version
预期输出:
v22.22.2
10.9.7
六、自动切换 Node.js 版本
在实际项目中,通常会在项目根目录创建 .nvmrc 文件来指定所需的 Node.js 版本。配合 fnm env --use-on-cd 配置,fnm 可以自动切换到正确的版本。
1. 创建 .nvmrc 文件
在项目根目录创建 .nvmrc 文件,内容为所需的 Node.js 版本号:
20
2. 终端自动切换原理
当使用 fnm env --use-on-cd 配置后,每次进入包含 .nvmrc 文件的目录时,fnm 会自动切换到文件指定的版本。
📌 这需要在终端配置文件(如
$PROFILE或~/.bashrc)中正确配置fnm env --use-on-cd命令
七、卸载 fnm
1. 卸载 fnm 程序
如果使用 winget 安装:
winget uninstall Schniz.fnm
如果手动安装,删除 fnm 安装目录并从 PATH 中移除即可。
2. 清理残留文件
fnm 默认将 Node.js 安装在以下位置:
%LOCALAPPDATA%\fnm\nodejs
⚠️ 卸载前请确认不再需要这些 Node.js 版本
3. 清理环境变量
从系统环境变量中移除 fnm 相关的 PATH 条目。