使用 FNM (Fast Node Manager) 管理多个 Node.js 版本

文章目录

    • [🔑 一、为什么选择 FNM?](#🔑 一、为什么选择 FNM?)
    • [🛠️ 二、如何安装 FNM?](#🛠️ 二、如何安装 FNM?)
      • [1. 安装 FNM(macOS / Linux)](#1. 安装 FNM(macOS / Linux))
        • [通过 Homebrew 安装(macOS / Linux)](#通过 Homebrew 安装(macOS / Linux))
        • [通过安装脚本安装(macOS / Linux)](#通过安装脚本安装(macOS / Linux))
      • [2. 安装 FNM(Windows)](#2. 安装 FNM(Windows))
    • [🧑‍💻 三、使用 FNM 管理 Node.js 版本](#🧑‍💻 三、使用 FNM 管理 Node.js 版本)
      • [1. 安装 Node.js 版本](#1. 安装 Node.js 版本)
      • [2. 切换 Node.js 版本](#2. 切换 Node.js 版本)
      • [3. 设置默认 Node.js 版本](#3. 设置默认 Node.js 版本)
    • [🔄 四、管理和查看已安装的版本](#🔄 四、管理和查看已安装的版本)
      • [1. 列出已安装的 Node.js 版本](#1. 列出已安装的 Node.js 版本)
      • [2. 卸载 Node.js 版本](#2. 卸载 Node.js 版本)
    • [🧰 五、FNM 高级功能](#🧰 五、FNM 高级功能)
      • [1. 使用 `.nvmrc` 文件自动切换 Node 版本](#1. 使用 .nvmrc 文件自动切换 Node 版本)
      • [2. 查看可用的 Node.js 版本](#2. 查看可用的 Node.js 版本)
    • 六、常用命令总结

在现代前端和后端开发中,管理不同的 Node.js 版本是一个常见且必不可少的需求。尤其是在不同项目之间切换时,可能需要不同版本的 Node.js 来保证项目运行环境的一致性。我们可以使用 fnm (Fast Node Manager) 来管理和切换 Node.js 版本。

fnm 是一个轻量级的 Node.js 版本管理工具,它不仅非常快速,而且安装、使用都非常简单。

🔑 一、为什么选择 FNM?

在过去,Node.js 版本管理工具如 nvm 已经广泛使用。但 fnm 以其以下优势脱颖而出:

  • 超快性能:fnm 使用 Rust 编写,性能比 nvm 快。
  • 轻量级:占用更少的磁盘空间。
  • 简易安装与配置:跨平台支持,配置简单。
  • 兼容性好:支持类 Unix 系统(macOS, Linux)及 Windows 通过 WSL。

mvn 的缺点具有以下:

  1. 不太稳定,有时候会出现一些问题。
  2. 不能安装老版本的 Node.js,例如 v12 及 以下的版本(需要手动下载文件放到 nvm 的安装目录下)。
  3. 不能根据项目自动切换 Node.js 版本,需要 nvm use 手动切换。

🛠️ 二、如何安装 FNM?

1. 安装 FNM(macOS / Linux)

macOSLinux 上,安装 fnm 非常简单,支持 Homebrew 或直接使用安装脚本。

通过 Homebrew 安装(macOS / Linux)

如果你已经安装了 Homebrew,可以通过以下命令安装 fnm:

bash 复制代码
brew install fnm
通过安装脚本安装(macOS / Linux)

如果没有 Homebrew,可以使用官方安装脚本:

bash 复制代码
curl -fsSL https://fnm.vercel.app/install | bash

这将会自动安装 fnm,并将相关路径添加到你的 shell 配置文件中(如 .bashrc.zshrc 等)。

2. 安装 FNM(Windows)

先下载

github 下载地址

下载的是一个 zip 压缩包,解压之后我放在了D:\Software\fnm目录下,如下图:

后面使用 fnm install 安装的版本都会存放到 D:\Software\fnm\node-versions 里面。

配置环境变量

右键点击此电脑,选择属性,然后点击左侧的"高级系统设置",新建 FNM_DIRFNM_NODE_DIST_MIRROR

复制代码
FNM_DIR 的值为:刚才解压的目录
FNM_NODE_DIST_MIRROR 的值为:`https://npmmirror.com/mirrors/node/`

如下图:

然后编辑系统变量 Path,把 FNM_DIR 加入 Path 中

最终验证 fnm 命令

打开新的终端窗口,输入 fnm --version 验证安装是否成功。如果显示版本号,说明安装成功。如下:

🧑‍💻 三、使用 FNM 管理 Node.js 版本

安装完成后,你就可以开始使用 fnm 来管理多个 Node.js 版本了。

1. 安装 Node.js 版本

使用 fnm 安装 Node.js 版本非常简单,只需执行以下命令:

bash 复制代码
fnm install 14
fnm install 16

这里的 1416 代表你想要安装的 Node.js 版本。你可以安装任何官方支持的版本(包括最新的 LTS 版本、稳定版本等)。

2. 切换 Node.js 版本

安装好多个版本后,使用以下命令切换到你需要的版本:

bash 复制代码
fnm use 14
fnm use 16

这将使当前终端会话使用指定的 Node.js 版本。如果需要查看当前使用的版本,可以运行:

bash 复制代码
fnm current

3. 设置默认 Node.js 版本

如果你想要设置一个默认版本,可以使用:

bash 复制代码
fnm default 16

这将使 Node.js 16.x 成为默认版本,新的终端会话将会自动使用该版本。

🔄 四、管理和查看已安装的版本

1. 列出已安装的 Node.js 版本

你可以使用以下命令查看已安装的所有 Node.js 版本:

bash 复制代码
fnm list

## 运行如下:
C:\Users\xinjie>fnm list
* v12.22.12 default
* v14.21.3
* v18.20.8
* v20.19.5
* system

这将列出所有你通过 fnm 安装的版本。

2. 卸载 Node.js 版本

如果你不再需要某个 Node.js 版本,可以轻松卸载:

bash 复制代码
fnm uninstall 14

这样可以释放磁盘空间,删除不再使用的版本。

🧰 五、FNM 高级功能

1. 使用 .nvmrc 文件自动切换 Node 版本

如果你在多个项目之间切换,可以在每个项目根目录下创建 .nvmrc 文件,指定该项目使用的 Node.js 版本。例如,文件内容可以是:

复制代码
16

.nvmrc 只是一个 "告诉 nvm 该用哪个 Node 版本" 的纯文本文件,里面只有一行内容: 版本号

随后在:

  1. 地址栏输入 %USERPROFILE%\Documents ,确认会自动跳转到用户文档目录。
  2. 新建WindowsPowerShell目录。(注意:如果已经有了该目录,直接跳过这一步)。
  3. 然后在WindowsPowerShell目录下 新建一个名为 Microsoft.PowerShell_profile.ps1 的文件。
  4. Microsoft.PowerShell_profile.ps1 使用记事本打开,内容如下:
bash 复制代码
# --- PowerShell 启动配置,fnm 自动切换 Node,只在有 .nvmrc 时触发 ---

# 设置 UTF-8 编码,避免中文乱码
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
chcp 65001 > $null 2>&1

# fnm 初始化(必保留)
fnm env --use-on-cd | Out-String | Invoke-Expression

# 记录上次 Node 版本,避免重复提示
$global:LastNodeVersion = $null

# prompt 包装函数,每次显示命令行提示时触发
function global:prompt {

    # 检测当前目录或父目录是否有 .nvmrc
    $nvmrc = Get-ChildItem -Path (Get-Location) -Recurse -Depth 1 -Filter ".nvmrc" -ErrorAction SilentlyContinue | Select-Object -First 1

    if ($nvmrc) {
        # 读取版本
        $version = Get-Content $nvmrc.FullName | Select-Object -First 1
        if ($version) {
            # 仅在版本变化时执行
            if ($version -ne $global:LastNodeVersion) {
                nvm use $version | Out-Null
                $global:LastNodeVersion = $version
            }
        }
    }

    # 返回默认 prompt
    return "PS $(Get-Location)> "
}

如图目录:

配置完成,后面每次进入到你的前端项目的终端时,fnm 会自动根据项目根目录下的 .nvmrc 文件切换到指定的 Node.js 版本。

细节

Windows PowerShell 中,创建 Microsoft.PowerShell_profile.ps1 文件的目的是定制

PowerShell 环境,使得每次启动 PowerShell 时自动加载指定的配置。

例如,你可以在这个文件中设置常用的别名、环境变量、自动加载模块等。这样,可以提高开发效率,避免每次启动 PowerShell时手动配置。

这个文件存放在 C:\Users<你的用户名>\Documents\WindowsPowerShell\ 目录下。

2. 查看可用的 Node.js 版本

如果你不确定可以安装哪些版本,可以使用以下命令查看所有可用版本:

bash 复制代码
fnm ls-remote

这将列出 Node.js 的所有稳定版本、LTS 版本等。

六、常用命令总结

  • fnm install <version>:安装指定版本。
  • fnm use <version>:切换当前会话使用的 Node 版本。
  • fnm default <version>:设置默认版本。
  • fnm list:查看已安装的版本。
  • fnm uninstall <version>:卸载某个版本。

👉点击进入 我的网站

相关推荐
你别说话了41 分钟前
Vue项目解决跨域
前端·javascript·vue.js
唐青枫1 小时前
http-server:别再双击 index.html,一条命令把目录变成网站
前端·javascript
网安蟹佬霸2 小时前
OSINT开源情报收集实战:从信息搜集到资产测绘(2026最新万字保姆级指南)
前端·网络·安全·web安全·网络安全·开源
单线程_012 小时前
【源码阅读】Vue3 Tokenizer 词法分析器完整状态机流转深度梳理(3.4+ 新版架构)
前端
PBitW2 小时前
PM 丢来 3 个 Excel、12 个功能、4 种情形?用 TRAE Work 30 分钟整理成前端开发文档
前端·trae
风骏时光牛马4 小时前
AIAgent高可用架构:弹性容错与故障自愈的落地实践
前端
IT_陈寒5 小时前
Vue的响应式什么时候会失灵?这个坑我踩了
前端·人工智能·后端
烟锁池塘柳05 小时前
解决 Firefox 浏览器网页文本选中高亮不明显问题(含仅修改特定网站高亮显示的方案)
前端·firefox
Patrick_Wilson5 小时前
Web 认证方案技术指南
前端·后端·面试
YuJie5 小时前
JSBridge 基础知识
前端·javascript