fnm 是一个快速、跨平台的 Node.js 版本管理器,使用 Rust 编写,让你可以轻松在同一台电脑上安装、切换和管理多个 Node.js 版本。
一、Windows 系统安装与使用
1. 安装 fnm
方法1:使用 winget 安装(推荐)
在 PowerShell 中执行:
winget install Schniz.fnm
首次使用 winget 会提示同意 Microsoft Store 协议,输入
Y确认即可。安装完成后会提示“已修改路径环境变量;重启 shell 以使用新值”。
方法2:使用安装脚本
iwr -useb 'https://fnm.vercel.app/install' | iex
2. 配置 PowerShell 环境
安装完成后,需要配置 PowerShell 配置文件,以便每次打开终端都能自动加载 fnm。
步骤1:以管理员身份打开 PowerShell
步骤2:创建配置文件(如果不存在)
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
步骤3:编辑配置文件
notepad $PROFILE
步骤4:在配置文件中添加以下内容
# fnm 环境配置
fnm env --use-on-cd | Out-String | Invoke-Expression
步骤5:使配置生效
. $PROFILE
3. 验证安装
fnm --version
# 预期输出:1.39.0 或更高版本
4. 常用命令(Windows)
| 命令 | 说明 | 示例 |
|---|---|---|
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 |
注意:
fnm use --lts会报错,正确用法是fnm use -- --lts或直接指定版本号。
5. Windows 常见问题
- 命令找不到:重新打开 PowerShell 窗口,或执行
. $PROFILE重新加载配置 - fnm use --lts 报错:使用
fnm use -- --lts替代 - CMD 中使用 fnm:fnm 主要支持 PowerShell,建议直接在 PowerShell 中使用
二、macOS 系统安装与使用
1. 安装 fnm
方法1:直接下载二进制文件(推荐,无需 Homebrew)
# 创建安装目录
mkdir -p ~/.fnm
# 下载 fnm(通用版本,支持 Intel 和 Apple Silicon)
curl -L -o ~/.fnm/fnm.zip https://github.com/Schniz/fnm/releases/latest/download/fnm-macos.zip
# 解压并添加执行权限
unzip -q ~/.fnm/fnm.zip -d ~/.fnm/
chmod +x ~/.fnm/fnm
方法2:使用 Homebrew 安装
# 安装 Homebrew(如未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 fnm
brew install fnm
2. 配置 Shell 环境
打开终端,编辑 ~/.zshrc 文件:
# 添加 fnm 到 PATH
echo 'export PATH="$HOME/.fnm:$PATH"' >> ~/.zshrc
# 添加 fnm 自动切换功能
echo 'eval "$(fnm env --use-on-cd)"' >> ~/.zshrc
# 使配置生效
source ~/.zshrc
3. 验证安装
fnm --version
# 预期输出:1.39.0 或更高版本
4. 常用命令(macOS)
命令与 Windows 基本一致,但注意 use 命令的语法略有不同:
| 命令 | 说明 | 示例 |
|---|---|---|
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 |
macOS 注意:
fnm use --lts在 macOS 上可以直接使用,不需要加额外的--。
5. macOS 常见问题
- 网络超时:设置代理
export https_proxy=http://127.0.0.1:7890后重试 - command not found: fnm:检查
~/.zshrc配置是否正确,执行source ~/.zshrc重新加载 - 查看 Mac 芯片类型:
uname -m(arm64 = Apple Silicon,x86_64 = Intel)
三、跨平台通用技巧
1. 项目自动切换版本
在项目根目录创建版本文件,fnm 会自动读取并切换:
- 创建
.node-version文件,内容写入目标版本号(如18.17.0) - 或创建
.nvmrc文件,内容同样写入版本号
进入项目目录时,fnm 会自动切换到指定 Node.js 版本。
2. 快速安装与切换
# 安装 LTS 版本并设为默认
fnm install --lts
fnm default lts-latest
# 安装多个版本
fnm install 18.17.0
fnm install 20.10.0
# 切换版本
fnm use 20.10.0
# 验证
node --version
npm --version
3. 为版本创建别名
# 设置别名
fnm alias my-project 18.17.0
# 使用别名切换
fnm use my-project
4. 查看远程可用版本
# 列出所有可用版本(输出较多)
fnm list-remote
# Windows 过滤 LTS 版本
fnm list-remote | findstr LTS
# macOS 过滤 LTS 版本
fnm list-remote | grep LTS
四、卸载 fnm
Windows 卸载
- 删除 fnm 可执行文件(通常在用户目录的
.fnm文件夹) - 从系统环境变量 PATH 中移除 fnm 相关路径
- 从 PowerShell 配置文件(
$PROFILE)中删除fnm env --use-on-cd | Out-String | Invoke-Expression这行
macOS 卸载
# 删除 fnm 目录
rm -rf ~/.fnm
# 从 .zshrc 中移除 fnm 相关行
sed -i '' '/fnm/d' ~/.zshrc
# 重新加载配置
source ~/.zshrc
五、命令速查表(通用)
| 命令 | 说明 |
|---|---|
fnm install <版本> | 安装指定版本 |
fnm install --lts | 安装最新 LTS 版本 |
fnm list | 列出已安装版本 |
fnm use <版本> | 切换版本 |
fnm current | 显示当前版本 |
fnm default <版本> | 设置默认版本 |
fnm uninstall <版本> | 卸载版本 |
fnm list-remote | 查看远程可用版本 |
fnm alias <别名> <版本> | 为版本创建别名 |
总结:fnm 是一款跨平台、快速、易用的 Node.js 版本管理器。通过本文的指引,你可以在 Windows 和 macOS 上轻松完成安装和配置,并掌握日常使用命令,提升开发效率。