告别nvm!fnm:新一代极速Node版本管理工具全攻略
告别nvm!fnm:新一代极速Node版本管理工具全攻略
缘起
对于工具,我一直是比较专情(aka:懒)的,关于 Node ,一直是使用 nvm 来管理不同版本的。
理由很简单:
- 这个工具我已经会用了
- 这个工具满足了我的需求
这种情况下,大部分时候我都不愿意去尝试其他的工具
直到有一天,我终于忍受不了将nvm ls-remote 敲成nvm list available 的时候,我知道我对他的感情已经尽了😴
简单解释
nvm并不原生支持windows,需要使用nvm-windows来支持windows,但是nvm-windows的指令和nvm的一致性存在差异,让我很郁闷,例如上面说的,查询可用版本的时候,nvm-windows 的指令是 nvm list available,而 nvm 的指令是 nvm ls-remote。
介绍fnm
fnm,全称Fast Node Manager,是一款用Rust编写的 Node.js 版本管理工具
然后还有人专门把他和nvm做了比对:
| 问题 | nvm 的短板 | fnm 的破局之道 |
|---|---|---|
| 启动慢 | Shell 脚本执行,每次切换都像“加载动画” | Rust 编译为原生二进制,毫秒级响应 |
| 跨平台难 | Windows 需依赖 WSL,配置复杂 | 原生支持 macOS / Linux / Windows,无需折腾 |
| 配置繁琐 | 需手动配置.bashrc/.zshrc,易出错 | 一键安装 + 自动注入,配置简单到“无感” |
1和3都是撤:谁频繁安装node,谁频繁切换node(一个新项目才切换一次),一台电脑才配置一次
然后2是我心动的,我有mac,大部分使用远程linux开发,但是我也是在放不下windows,他也许安全性性能都比不上mac和linux,但是他gui的响应性确实很习惯的,而且针对一些文档办公环境也更友好,所以我也很喜欢在windows下写代码。
安装
linux可以直接使用提供的安装脚本,windows使用winget:
# linuxcurl-fsSLhttps://fnm.vercel.app/install|bash#windowswingetinstall--idSchniz.fnm使用
我对node办公管理工具的要求只有:安装卸载node、切换node环境
安装卸载node
# 查看可用版本fnm list-remote# 安装指定版本fnminstallv22.22.3# 知道名字还可以不用查:安装最新lts版本fnminstall--lts卸载
切换node环境
# 查看已安装版本fnm list# 切换指定版本fnm use v22.22.3 fnm use v24.17.0别名
这也是我常用的一个功能: 总有一些古董项目需要修复bug,版本要求也比较老,经常记不住,所以直接给他起一个项目的名字:
fnm list-remote|grepv16.20 fnminstallv16.20.2 fnmaliasv16.20.2 erp fnm list fnm use erp小结
终于准备告别nvm,全面拥抱fnm
欢迎关注:
告别nvm!fnm:新一代极速Node版本管理工具全攻略