Windows 中使用 fnm 管理 node (bash配置)

1,010 阅读6分钟

第一步:下载安装fnm

首先我们找到fnm github地址:github.com/Schniz/fnm

我这里选择手动下载Windows二进制文件,其它系统可参考其官方文档自行下载安装使用。

屏幕截图 2025-09-04 134939.png

屏幕截图 2025-09-04 135118.png

第二步:配置PATH环境变量

下载完成得到一个压缩包,解压得到fnm.exe文件 (此时并非双击执行 哈哈)

我这里选择在非启动盘D盘新建一个文件夹fnm-windows,其路径为D:\Program Files\fnm-windows,并将fnm.exe文件移入到fnm-windows文件夹内。

现在需要将fnm配置进PATH环境变量(配置进用户变量还是系统变量可自行选择,我这里都选择用户变量),使得能够在任意目录打开命令行时都能访问到fnm

在任务栏搜索中输入高级系统设置进入环境变量配置页面,也可以在桌面鼠标右键此电脑-->点击属性-->滚动到最下方点击高级系统设置进入。

  1. 点击环境变量。
  2. 双击Path编辑用户变量。
  3. 点击新建并将fnm.exe文件所在的路径位置D:\Program Files\fnm-windows输入其中。
  4. 点击确定即可新建完成,此时可关掉刚才打开的两个弹窗。

屏幕截图 2025-09-04 142016.png 屏幕截图 2025-09-04 142334.png 屏幕截图 2025-09-04 143052.png

第三步:配置shell

此时打开命令行工具执行fnm --version可看到fnm版本号。

屏幕截图 2025-09-04 150358.png

此时需要配置shell,我这里只配置Git Bash,其它诸如Windows PowerShell命令提示符(CMD)等可参考官网进行配置:Set up your shell for fnm

进入官网shell配置部分复制指令eval "$(fnm env --use-on-cd --shell bash)"

Git Bash中执行 nano ~/.bashrcnano将在用户目录新建或打开.bashrc文件,此时会进入nano的文本编辑界面,右键Paste粘贴,ctrl+x退出-->Y确认保存修改-->enter确认保存位置并退出nano界面。关掉Git Bash再次进入以使bash配置生效。

--use-on-cd 会在每次切换目录时基于.node-version or .nvmrc切换node版本。

可在当前目录执行node --version > .node-version用以在当前目录生成.node-version文件并将当前node版本写入文件。

屏幕截图 2025-09-04 152352.png 屏幕截图 2025-09-04 152730.png

第四步:配置FNM_DIR环境变量

现在已经可以正常使用fnm了。不过我希望自定义安装目录(默认在C盘),将fnm下载的node不同版本都放在D盘和fnm.exe一起管理。

我这里在上述的D:\Program Files\fnm-windows文件夹下新建一个与fnm.exe文件同级的node文件夹来作为安装目录。

执行fnm env可看到FNM_DIR环境变量——指向安装目录。

FNM_NODE_DIST_MIRROR——指向node下载源,若觉得下载速度慢也可换国内镜像,同FNM_DIR环境变量配置,我这里就不换了。也可在fnm install [OPTIONS] [VERSION]时通过--node-dist-mirror指定本次安装下载镜像。

本次安装设置 Node.js 版本下载的国内镜像 (默认为:nodejs.org/dist)

fnm install [VERSION] --node-dist-mirror https://npmmirror.com/mirrors/node/

本次安装设置 Node.js 版本下载的自定义安装目录

fnm install [VERSION] --fnm-dir "D:\Program Files\fnm-windows\node"

重复之前配置PATH环境变量操作打开高级系统设置进行FNM_DIR环境变量配置。

若还要配置FNM_NODE_DIST_MIRROR,只需重复操作替换步骤三的变量名:FNM_NODE_DIST_MIRROR和变量值:https://npmmirror.com/mirrors/node/即可。

  1. 点击环境变量。
  2. 点击新建用户变量。
  3. 输入变量名:FNM_DIR,变量值:D:\Program Files\fnm-windows\node
  4. 点击确定即可新建完成,此时可关掉刚才打开的两个弹窗。

屏幕截图 2025-09-04 142016.png 屏幕截图 2025-09-04 160822.png 屏幕截图 2025-09-04 161131.png

第五步:使用fnm

此时可使用fnm安装node,可执行fnm install --lts安装最新的 LTS(长期支持)版本,再去找一个你觉得合适的低版本node安装,熟悉一下fnm常用命令。

Configuration

See the available configuration options for an extended configuration documentation

Usage

See the available commands for an extended usage documentation

# 查看 fnm 版本
fnm --version

# fnm 帮助
fnm help

# 查看fnm环境变量(FNM_DIR、FNM_NODE_DIST_MIRROR是否已替换)
fnm env

# 查看所有远程可安装的 Node.js 版本
fnm list-remote

# 安装指定版本的 Node.js
fnm install <version>

# 安装最新的 LTS(长期支持)版本
fnm install --lts

# 切换到指定版本的 Node.js
fnm use <version>

# 查看当前正在使用的 Node.js 版本
fnm current

# 查看本地已安装的所有 Node.js 版本
fnm list

# 删除指定版本的 Node.js
fnm uninstall <version>

# 设置默认的 Node.js 版本
fnm default <version>

# 为指定版本设置别名
fnm alias <version> <alias>

# 移除指定的版本别名
fnm unalias <alias>

# 使用指定版本运行命令
fnm exec --using=<version> <command>

同时观察D:\Program Files\fnm-windows\node目录,有以下两个文件夹aliasesnode-versions,其中你的node不同版本就存放在node-versions中。

屏幕截图 2025-09-04 170154.png

屏幕截图 2025-09-04 170255.png

第六步:配置npm cache路径

此时我们来考虑npm的全局下载路径和缓存路径是否需要修改。

# 查看 npm 配置信息
npm config list 或 npm config get

# 查看当前 npm cache 和 prefix 路径
npm config get cache
npm config get prefix

# 修改 cache 和 prefix 路径(示例,不要跟着配置了!)
npm config set cache "D:\nodejs\node_cache"
npm config set prefix "D:\nodejs\node_global"

# 查看 npm 已配置的镜像源(工作中偶尔需要配置公司的npm镜像源)
npm config get registry
# 官方
npm config set registry https://registry.npmjs.org
# 淘宝
npm config set registry https://registry.npm.taobao.org

# 查看全局安装的包 -g 表示全局安装的包,--depth=0 只显示顶层依赖,不显示子依赖。
npm list -g --depth=0

# 查看当前项目的本地安装包 在项目根目录下运行以下命令
npm list --depth=0

当你直接安装Node.js时,整个生态系统(Node.js运行时、全局安装的包node_global、缓存node_cache)默认都在C盘。

fnm的核心功能是为你管理的每一个Node.js版本都创建独立的安装目录,可以通过在不同node版本下执行npm config get prefix验证。即使使用fnm,所有版本的npm共享同一个全局缓存目录,可以通过在不同node版本下执行npm config get cache验证(两次执行中间需要重启Git Bash或者每次执行后进入目标目录作比较)。

所以这里我推荐只修改npm的全局缓存路径(cache),而不修改全局安装路径(prefix

# 设置新的缓存目录
npm config set cache "D:\Program Files\fnm-windows\npm-cache"

# 通常情况下,不建议再修改全局安装路径,这会带来很多问题...

我这里在上述的D:\Program Files\fnm-windows文件夹下新建一个与fnm.exe文件同级的npm-cache文件夹来作为缓存目录。 屏幕截图 2025-09-04 185951.png

设置新的缓存目录后你会发现在你的用户目录生成了一个.npmrc文件,打开看就是刚才写入的cache内容:cache=D:\Program Files\fnm-windows\npm-cache(已有.npmrc文件就会自动写入到文件内容最下方)。

第七步:配置VS Code

打开VS Codectrl+` 打开终端,若Git Bash已为默认打开终端,则无需修改配置。

Git Bash非默认则点击选择默认配置文件,选择Git Bash即可;也可ctrl+,打开设置,搜索Terminal › Integrated › Default Profile: Windows,选择Git Bash

VS Code中打开集成终端,看到默认是打开的bash,输入fnm current,回车,如果没有报错,那就说明配置成功了。

后续就可以在VS Code终端和Git Bash愉快使用fnm管理你的node版本了!

Tip: fnm current 输出当前Node.js版本,在此之前请确保已使用fnm安装过node

屏幕截图 2025-09-04 184436.png

屏幕截图 2025-09-04 184844.png

屏幕截图 2025-09-04 185312.png