一、什么是 fnm?
fnm 是一个快速、跨平台的 Node.js 版本管理器,使用 Rust 编写。它可以让你在同一台电脑上轻松安装、切换和管理多个 Node.js 版本。
二、安装 fnm
方法1:使用 winget 安装(推荐)
powershell
# 在 PowerShell 中执行
winget install Schniz.fnm
安装过程中的注意事项:
- 首次使用 winget 会提示同意 Microsoft Store 协议,输入
Y确认即可 - 安装完成后会提示:"已修改路径环境变量;重启 shell 以使用新值"
方法2:使用安装脚本
powershell
# 在 PowerShell 中执行
iwr -useb 'https://fnm.vercel.app/install' | iex
三、配置 PowerShell 环境
安装完成后,需要配置 PowerShell 配置文件,以便每次打开终端都能自动加载 fnm。
步骤1:打开 PowerShell(以管理员身份运行)
步骤2:创建 PowerShell 配置文件
powershell
# 如果配置文件不存在,则创建
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
步骤3:编辑配置文件
powershell
# 用记事本打开配置文件
notepad $PROFILE
步骤4:在配置文件中添加以下内容
powershell
# fnm 环境配置
fnm env --use-on-cd | Out-String | Invoke-Expression
步骤5:使配置立即生效
powershell
# 重新加载配置文件
. $PROFILE
四、验证安装
powershell
# 检查 fnm 版本
fnm --version
# 预期输出:1.39.0(或更高版本)
五、使用 fnm 管理 Node.js 版本
1. 安装 Node.js
powershell
# 安装最新的 LTS 版本
fnm install --lts
# 安装指定版本
fnm install 18.17.0
fnm install 16.20.0
# 安装最新版本
fnm install latest
2. 查看已安装的版本
powershell
# 列出所有已安装版本(带 * 的是当前使用的版本)
fnm list
# 或
fnm ls
示例输出:
text
* v24.14.0 default, lts-latest
* system
3. 切换 Node.js 版本
powershell
# 切换到最新 LTS 版本(注意语法)
fnm use -- --lts
# 切换到指定版本
fnm use v24.14.0
fnm use 18.17.0
# 使用别名切换
fnm use lts-latest
# 切换到系统版本
fnm use system
⚠️ 注意: fnm use --lts 会报错,正确用法是 fnm use -- --lts 或直接指定版本号。
4. 设置默认版本
powershell
# 将某个版本设为默认
fnm default v24.14.0
5. 查看当前使用的版本
powershell
fnm current
6. 卸载指定版本
powershell
fnm uninstall 16.20.0
六、实用技巧
1. 项目自动切换版本
在项目根目录创建版本文件,fnm 会自动读取并切换:
- 创建
.node-version文件,内容写入:18.17.0 - 或创建
.nvmrc文件,内容写入:18.17.0
这样当进入该项目目录时,fnm 会自动切换到指定的 Node.js 版本。
2. 查看远程可用版本
powershell
# 查看所有远程版本
fnm list-remote
# 过滤查看 LTS 版本
fnm list-remote | findstr LTS
3. 为版本创建别名
powershell
# 为特定版本设置别名
fnm alias my-project 18.17.0
# 使用别名切换
fnm use my-project
七、常用命令速查表
| 命令 | 说明 | 示例 |
|---|---|---|
fnm install <版本> | 安装指定版本 | fnm install 18.17.0 |
fnm install --lts | 安装最新 LTS | fnm install --lts |
fnm list | 列出已安装版本 | fnm list |
fnm use <版本> | 切换版本 | fnm use 18.17.0 |
fnm use -- --lts | 切换到 LTS 最新版 | fnm use -- --lts |
fnm current | 显示当前版本 | fnm current |
fnm default <版本> | 设置默认版本 | fnm default 18.17.0 |
fnm uninstall <版本> | 卸载版本 | fnm uninstall 16.0.0 |
fnm list-remote | 查看远程版本 | fnm list-remote |
fnm alias <别名> <版本> | 创建别名 | fnm alias stable 18.17.0 |
八、验证 Node.js 和 npm
安装并切换版本后,验证是否生效:
powershell
# 验证 Node.js
node --version
# 示例输出:v24.14.0
# 验证 npm
npm --version
# 示例输出:11.9.0
九、常见问题解决
Q1: 执行 fnm 命令提示找不到命令
解决方案:重新打开 PowerShell 窗口,或执行 . $PROFILE 重新加载配置。
Q2: fnm use --lts 报错
解决方案:使用 fnm use -- --lts 或直接指定版本号 fnm use v24.14.0。
Q3: 如何在 CMD 中使用 fnm?
fnm 主要支持 PowerShell,在 CMD 中使用需要额外配置,建议直接在 PowerShell 中使用。
Q4: 安装时进度条卡住
可能是网络问题,可以尝试:
- 检查网络连接
- 使用代理
- 稍后重试
十、卸载 fnm
如果需要卸载 fnm:
- 删除 fnm 可执行文件(通常在用户目录的
.fnm文件夹) - 从系统环境变量 PATH 中移除 fnm 相关路径
- 从 PowerShell 配置文件中删除
fnm env --use-on-cd | Out-String | Invoke-Expression这行
笔记总结:fnm 是一个快速、易用的 Node.js 版本管理器,特别适合在 Windows 上使用。通过简单的命令就可以轻松管理多个 Node.js 版本,提高开发效率。