硬件环境:windows11
操作环境: git version 2.49.0.windows.1
日期:2026-02-05
安装fnm:
curl -fsSL https://fnm.vercel.app/install | bash
正常走完安装流程,会出现提示,意思大概是:依赖已安装,并向 ~/.bashrc 中添加了一些内容
# fnm
FNM_PATH="/xxxx/[user_name]/.local/share/fnm"
if [ -d "$FNM_PATH" ]; then
export PATH="$FNM_PATH:$PATH"
eval "`fnm env`"
fi
后面还有:
In order to apply the changes, open a new terminal or run the following command:
source /c/Users/jay18/.bashrc
为了使上面 .bashrc 添加的内容生效,请使用 source ~/.bashrc重载配置文件。
⚠️注意1:
## 配置环境变量 - 1
eval "`fnm env`"
## 在 cd 目录的时候自动切换 node 版本 - 2
eval "`fnm env --use-on-cd`"
## (推荐)执行命令的时候,明确的告诉 fnm 使用的是 bash 环境,更丝滑,
## 否则他还要自己走一步判断逻辑 -3
eval "`fnm env --use-on-cd --shell`"
安装node
示例:
# 安装 node
fnm install v20.20.0
fnm install v22.22.0
fnm install v24.13.0
自动切换node
在项目根目录中创建 .node-version 或者 .nvmrc 文件,配合之前的 --use-on-cd即可实现在切换目录的时候自动切换pnpm版本。
24.13.0
安装pnpm
fnm 只管理 nodejs,不会自动切换pnpm 、yarn 等子包管理工具。
推荐使用 corepack安装 pnpm。( Node 16.13+ 自带 Corepack )
pnpm 命令 => corepack shim => 根据 package.json 选择 pnpm 版本 => 执行
# 开启 corepack
corepack enable
# 安装 pnpm
corepack prepare pnpm@latest --activate
如果在有些版本在切换node后,corepack 可能需要重新 enable,再次执行 corepack enable即可。
或者可以在 .bashrc中添加
corepack enable > /dev/null 2>&1
这样每次 shell 启动自动确保存在。
为什么不是 npm -g :
如果是 使用 npm install -g pnpm安装 pnpm,那在切换 node 版本的同时会混乱,找不到 pnpm 。
pnmp 版本管理:
在package.json中:
{
"packageManager": "pnpm@8.6.11"
}
- 不同的项目中可以锁定pnpm版本
- 别人克隆项目自动使用对应版本
- CI、CD 行为一致
常用命令
# 查看所有远程可安装的 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>