fnm一款Rust编写的跨平台Node版本神器

0 阅读4分钟

几乎前端都用过node版本管理工具nvm,但可能你没听说过fnm, fnm全称是 Fast Node Manager,就是一款用来管理电脑上 Node.js 版本的工具,简单说就是帮你在不同 Node 版本之间快速切换,解决项目依赖版本冲突的问题,主打一个快、轻、跨平台。 image

一、背景:为什么会出现fnm?

做前端、Node开发的都知道,不同项目依赖的 Node 版本不一样,老项目可能要 Node14,新项目要 Node20,总不能装了卸、卸了装吧?于是就有了 Node 版本管理工具。

但之前主流的工具都有槽点:nvm 启动慢、切换卡顿,Windows 系统适配还拉胯n 工具只适配 Mac/Linux,Windows 用不了,而且两者都有点笨重,占内存、响应慢。

fnm 就是为了解决这些痛点诞生的开源工具,开发者就是想做一个跨平台、启动秒响应、操作简单的版本管理器,让大家切换 Node 版本不用等,全系统都能用。

二、技术框架:fnm靠什么做到又快又稳?

fnm 的底层逻辑很纯粹,没有花里胡哨的冗余设计,核心技术点用大白话讲就是这几点:

  • 语言底层:Rust 编写:Rust 是出了名的运行快、占内存小,编译后是原生二进制文件,启动、切换版本都是毫秒级,比老工具的脚本运行快十几倍,这是它“快”的核心原因。

  • 轻量无依赖:整个工具就是单个文件,不用额外装其他运行环境,下载安装一步到位,不占磁盘空间,也不会拖慢系统。

  • 跨平台原生适配:完美支持 Mac、Windows、Linux 三大系统,连 WSL(Linux子系统)也能无缝兼容,不用像 nvm 那样在 Windows 上折腾兼容层。

  • 环境变量切换机制:通过修改系统环境变量来切换 Node 版本,不改动系统原有配置,切换后立即生效,也不会污染全局环境。

  • 智能缓存+版本锁定:下载过的 Node 版本会缓存起来,下次不用重复下载;还支持项目目录锁定版本,进文件夹自动切对应 Node,不用手动切换。

三、相关对比:fnm和nvm、n比,优势在哪?

直接做通俗对比,一看就懂,不用记复杂参数:

工具优点缺点适合人群相关文档
fnm极速响应、跨平台全兼容、轻量无依赖、支持目录自动切版本、内存占用极低生态比nvm小一点,但日常功能完全够用全平台开发者,追求效率、嫌老工具慢的人fnmnode.com
nvm生态成熟、教程多、功能全面启动慢、切换卡顿、Windows适配差、占内存习惯老工具、只在Mac/Linux开发的人nvmnode.com
n操作简单、轻量不支持Windows,功能单一纯Mac/Linux开发者,只做基础版本切换

总结:日常开发选fnm就够了,全平台通用、速度拉满,没什么硬伤。

四、使用方法:零基础上手,几步搞定

fnm 操作极其简单,全程命令行搞定,记几个常用命令就行,不用复杂配置。

1. 安装fnm(各系统通用)

Windows(PowerShell运行):

winget install Schniz.fnm

Mac/Linux(终端运行):

curl -fsSL https://fnm.vercel.app/install | bash

安装完关闭重启终端,输入fnm --version,显示版本号就是装好了。

2. 常用核心命令(记这几个就够)

  • 查看可安装的Node版本:fnm list-remote(能看到所有官方Node版本)

  • 安装指定Node版本(比如装20.10.0):fnm install 20.10.0

  • 安装最新LTS稳定版:fnm install --lts

  • 查看本地已装的Node版本:fnm list

  • 切换到指定Node版本:fnm use 20.10.0

  • 设置默认Node版本(开机自动用):fnm default 20.10.0

  • 项目目录锁定版本(进文件夹自动切):fnm use 20.10.0 --project

  • 卸载不用的Node版本:fnm uninstall 20.10.0

3. 日常使用流程

  1. 安装fnm → 装需要的Node版本

  2. 打开项目文件夹,用fnm use切对应版本,或直接锁定项目版本

  3. 后续打开项目自动切换,不用重复操作

小提示:fnm 完全兼容 npm、yarn、pnpm 这些包管理器,切换Node版本后,对应的包管理器也会自动适配,不用额外配置。