在Windows上使用fnm管理多版本Node.js环境

2026-03-31 44 阅读 前端开发

一、前言

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. 方法二:手动安装

  1. 访问 fnm GitHub Releases 页面:
    👉 https://github.com/Schniz/fnm/releases
  2. 下载最新的 fnm-windows.zip 文件
  3. 解压到一个固定目录,例如:
C:\tools\fnm\

配置环境变量

  1. 添加 fnm 到系统 PATH:
    • 打开 系统属性高级环境变量
    • 在用户变量或系统变量的 Path 中添加:C:\tools\fnm
  2. 重新打开终端,验证安装:
fnm --version

预期输出:

fnm 1.39.0

三、环境变量配置

1. 初始化 fnm

将以下配置添加到终端配置文件中,实现自动切换 Node.js 版本和设置镜像源(永久生效)。

配置 PowerShell

  1. 创建或打开 PowerShell 配置文件:
# 创建或打开 PowerShell 配置文件
# 如果文件不存在,会自动创建
New-Item -Path $PROFILE -Type File -Force

# 打开 PowerShell 配置文件
notepad $PROFILE
  1. 在打开的 $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

  1. 打开 ~/.bash_profile 文件:
vi ~/.bash_profile
  1. 添加以下内容:
# 设置 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)"
  1. 使配置生效:
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 条目。