在macOS上使用fnm管理多版本Node.js环境
一、前言
fnm(Fast Node Manager)是一个基于 Rust 编写的 Node.js 版本管理工具,相比传统的 nvm,它具有更快的安装速度和更低的内存占用。fnm 支持 Windows、macOS 和 Linux,能够帮助开发者快速切换不同版本的 Node.js 环境。
1、本文主要内容
- 安装 fnm(使用 Homebrew 或脚本安装)
- 环境变量配置(zsh)
- 使用 fnm 安装和管理 Node.js
- 切换 Node.js 版本
- 常用命令说明
- 自动切换 Node.js 版本
- 卸载 fnm
2、本文环境信息
| 工具/环境 | 版本说明 |
|---|---|
| macOS | macOS 11+ |
| Shell | zsh |
| fnm | 1.39.0 |
二、fnm 安装(macOS)
1. 方法一:使用 Homebrew(推荐)
打开终端,运行:
brew install fnm
2. 方法二:使用安装脚本
如果不想使用 Homebrew,可以使用官方安装脚本:
curl -fsSL https://fnm.vercel.app/install | bash
📌 安装脚本会自动将 fnm 添加到你的 shell 配置文件中
三、环境变量配置
1. 初始化 fnm
将以下配置添加到终端配置文件中,实现自动切换 Node.js 版本和设置镜像源(永久生效)。
💡 如果你没有使用zsh,使用的是 bash,则编辑
~/.bashrc或~/.bash_profile
- 打开
~/.zshrc文件:
vi ~/.zshrc
- 添加以下内容:
# 设置 fnm 安装目录
export FNM_DIR="$HOME/sdk/node"
# 设置 Node.js 下载镜像为国内镜像(npmmirror.com)
export FNM_NODE_DIST_MIRROR="https://npmmirror.com/mirrors/node"
# 初始化 fnm(自动切换版本)
eval "$(fnm env --use-on-cd)"
- 使配置生效:
source ~/.zshrc
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 会自动切换到文件指定的版本。
📌 这需要在终端配置文件(如
~/.zshrc或~/.bashrc)中正确配置fnm env --use-on-cd命令
七、卸载 fnm
1. 卸载 fnm 程序
如果使用 Homebrew 安装:
brew uninstall fnm
如果使用安装脚本安装,删除 fnm 安装目录即可:
rm -rf ~/.fnm
2. 清理残留文件
fnm 默认将 Node.js 安装在以下位置:
~/.fnm/node-versions
⚠️ 卸载前请确认不再需要这些 Node.js 版本
3. 清理环境变量
从 shell 配置文件中移除 fnm 相关的环境变量设置:
~/.zshrc或~/.bashrc中的FNM_DIR、FNM_NODE_DIST_MIRROReval "$(fnm env --use-on-cd)"命令