fnm nodejs 版本管理工具 作者:马育民 • 2026-05-07 08:14 • 阅读:10000 # 介绍 **fnm(Fast Node Manager)** 是用 **Rust** 编写的**跨平台 Node.js 版本管理器**,主打**极速启动、单文件零依赖、全平台一致体验**,常被用作 nvm 的高性能替代品。 ### 特点 - ⚡ **极快**:启动/切换约 **3ms**,比 nvm 快 **10–20 倍** - 🌍 **跨平台**:macOS / Linux / Windows 全支持 - 📦 **单文件**:无依赖,解压即用 - 🔄 **自动切换**:支持 `.node-version` / `.nvmrc` - 🛠 **兼容 nvm**:可复用 nvm 安装的版本 --- # 安装-Windows ### winget默认安装(不推荐) PowerShell,推荐 winget ```powershell winget install Schniz.fnm ``` 默认安装路径: ``` C:\Users\你的用户名\AppData\Local\Microsoft\WinGet\Packages\Schniz.fnm_xxxx\ ``` ### winget指定安装路径(推荐) ``` winget install Schniz.fnm -l D:\devtools\fnm ``` 安装路径: ``` D:\devtools\fnm ``` ### 手动安装 从 https://github.com/Schniz/fnm/releases 下载解压,加入 `PATH` ### 卸载 ``` winget uninstall Schniz.fnm ``` # 安装-macOS / Linux ### curl 一键 ```bash curl -fsSL https://fnm.vercel.app/install | bash ``` ### macOS(Homebrew) ```bash brew install fnm ``` # node安装路径 fnm 下载的所有 Node 版本 默认存放在: ``` C:\Users\你的用户名\.fnm\ ``` (由环境变量 FNM_DIR 控制) ### 改变 Node 版本存放路径(推荐,必改) 只需要改环境变量 FNM_DIR,跟安装方式无关: 新建一个目录,例如: ``` D:\dev\node-versions\ ``` PowerShell 设置用户变量(永久): ```powershell [Environment]::SetEnvironmentVariable("FNM_DIR", "D:\dev\node-versions", "User") ``` 重启终端,之后: ```powershell fnm install 20 ``` 所有 Node 都会装到 D 盘,不占 C 盘空间。 # 环境变量配置 安装后需在 Shell 配置添加初始化,让终端识别 `fnm` 并**目录自动切换 Node 版本**。 ### windows 启动 PowerShell,切换到 `fnm` 所在目录,执行下面命令: ```powershell fnm env --use-on-cd | Out-String | Invoke-Expression ``` 修改 **用户环境变量**: [](https://www.malaoshi.top/upload/0/0/1GW3GYfXMYSk.png) ### 验证 重启终端,执行 ```bash fnm --version ``` ### macos/linux ```bash eval "$(fnm env --use-on-cd)" source ~/.bashrc # 或 ~/.zshrc ``` --- # 常用命令(速查) ### 版本安装 ```bash fnm install --lts # 安装最新 LTS fnm install 20.11.1 # 安装指定版本 fnm install 18 # 安装 18.x 最新 ``` #### 版本切换 ```bash fnm use lts-latest # 切到最新 LTS fnm use 20.11.1 # 切到指定版本 fnm use system # 切回系统 Node ``` #### 版本管理 ```bash fnm list # 列出已安装 fnm list-remote # 列出可安装版本 fnm default 20 # 设默认版本 fnm current # 查看当前版本 fnm uninstall 18.17.0 # 卸载指定版本 ``` #### 别名(常用版本快捷) ```bash fnm alias 20 latest-20 fnm unalias latest-20 ``` --- ### 五、自动切换(.node-version / .nvmrc) 在项目根目录创建版本文件,进入目录自动切换 Node 版本。 - .node-version ```text 20.11.1 ``` - .nvmrc(兼容 nvm) ```text lts/* ``` - 配合 `--use-on-cd`,cd 进入目录自动切换。 --- ### 六、国内镜像加速 默认源:`https://nodejs.org/dist`,国内可改用镜像加速下载。 - 临时(命令行) ```bash fnm install --node-dist-mirror=https://npmmirror.com/mirrors/node 20 ``` - 永久(环境变量) ```bash # bash/zsh export FNM_NODE_DIST_MIRROR=https://npmmirror.com/mirrors/node ``` --- ### 七、fnm vs nvm 对比 | 特性 | fnm | nvm(nvm-windows) | |---|---|---| | 开发语言 | Rust(单文件) | Shell(Windows 需 nvm-windows) | | 启动速度 | ≈3ms | ≈50–300ms | | 跨平台 | 全平台一致 | Unix 原生,Windows 需移植 | | 自动切换 | ✅ .node-version/.nvmrc | ✅ .nvmrc | | 安装 | 单文件/brew/winget | 脚本/源码 | --- ### 八、常见问题 1. **命令找不到 fnm** 检查 Shell 配置是否添加 `eval "$(fnm env)"`,重启终端或 `source ~/.zshrc`。 2. **Windows 权限不足** PowerShell 以管理员身份运行,或把 fnm 目录加入用户 PATH。 3. **切换目录不自动切换版本** 确认配置有 `--use-on-cd`,且项目目录存在 `.node-version` 或 `.nvmrc`。 --- ### 九、总结 fnm 是**高性能、跨平台、零依赖**的 Node.js 版本管理器,适合追求速度与一致性的开发场景,可无缝替代 nvm 并兼容其生态。 要不要我把上述内容整理成一份可直接复制的安装与配置脚本(含国内镜像),你一键粘贴就能完成环境搭建? 原文出处:http://www.malaoshi.top/show_1GW3GYLCJrvp.html