fnm (Fast Node Manager) 安装与使用全攻略(Windows & macOS)

66 阅读2分钟

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安装最新 LTSfnm 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安装最新 LTSfnm 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 卸载

  1. 删除 fnm 可执行文件(通常在用户目录的 .fnm 文件夹)
  2. 从系统环境变量 PATH 中移除 fnm 相关路径
  3. 从 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 上轻松完成安装和配置,并掌握日常使用命令,提升开发效率。