一个用于快速切换 Node.js 版本的 VSCode 扩展,支持 nvm、nvm-windows、fnm、pnpm、Volta 和 mise 工具。
- 多工具支持:自动检测并使用 nvm、fnm、pnpm、Volta 或 mise(优先使用 nvm)
- 快速切换:轻松在已安装的 Node.js 版本之间切换
- 状态栏显示:在状态栏显示当前使用的 Node.js 版本和管理工具
- 安装新版本:直接从 VSCode 安装新的 Node.js 版本
- 全局/本地切换:支持全局或项目级别的版本切换
- .nvmrc/.node-version 支持:自动检测并应用 .nvmrc、.node-version 文件或 Volta package.json 配置中指定的版本
- 自动检测:自动检测 nvm、fnm、Volta 或 mise 是否已安装
- 跨平台:支持 Windows、Linux 和 macOS
在使用此扩展之前,你需要先安装 nvm、fnm、pnpm、Volta 或 mise(至少安装其中一个):
# 从 GitHub 下载安装器
# https://github.com/coreybutler/nvm-windows/releases
# 或使用 Chocolatey
choco install nvm
# 或使用 Scoop
scoop install nvm# 使用官方安装脚本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 或使用 Homebrew (macOS)
brew install nvm更多安装方式请参考:
# 使用 winget
winget install Schniz.fnm
# 或使用 Scoop
scoop install fnm
# 或使用 Chocolatey
choco install fnm# 使用官方安装脚本
curl -fsSL https://fnm.vercel.app/install | bash
# 或使用 Homebrew (macOS)
brew install fnm
# 或使用 Cargo
cargo install fnm安装后需要配置 shell:
# Bash
eval "$(fnm env --use-on-cd --shell bash)"
# Zsh
eval "$(fnm env --use-on-cd --shell zsh)"
# Fish
fnm env --use-on-cd --shell fish | source
# PowerShell
fnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression更多安装方式请参考 fnm 官方文档。
# 使用 npm
npm install -g pnpm
# 或使用 winget
winget install pnpm
# 或使用 Scoop
scoop install nodejs-lts pnpm
# 或使用 Chocolatey
choco install pnpm# 使用 npm
npm install -g pnpm
# 或使用官方安装脚本
curl -fsSL https://get.pnpm.io/install.sh | sh -
# 或使用 Homebrew (macOS)
brew install pnpm
# 或使用 Corepack (Node.js 16.13+)
corepack enable
corepack prepare pnpm@latest --activate更多安装方式请参考 pnpm 官方文档。
# 使用 winget
winget install Volta.Volta
# 或使用 Scoop
scoop install volta
# 或使用 Chocolatey
choco install volta# 使用官方安装脚本
curl https://get.volta.sh | bash
# 或使用 Homebrew (macOS)
brew install volta更多安装方式请参考 Volta 官方文档。
curl https://mise.run | sh# 使用 winget
winget install jdx.mise
# 或使用 scoop
scoop install mise
# 或使用 chocolatey
choco install mise更多安装方式请参考 mise 官方文档。
如果扩展无法自动找到 nvm、fnm、pnpm、Volta 或 mise,你可以手动配置路径:
- 打开 VSCode 设置(
Ctrl+,/Cmd+,) - 搜索 "Fast Node Switcher"
- 配置相应的路径
可用配置项:
-
Nvm Path: nvm 可执行文件路径
- Windows:
C:\Program Files\nvm\nvm.exe - Unix:
/home/你的用户名/.nvm/nvm.sh
- Windows:
-
Fnm Path: fnm 可执行文件路径
- Windows:
C:\Users\你的用户名\AppData\Local\fnm\fnm.exe - Unix:
/home/你的用户名/.local/share/fnm/fnm
- Windows:
-
Pnpm Path: pnpm 可执行文件路径
- Windows:
C:\Users\你的用户名\AppData\Local\pnpm\pnpm.exe - Unix:
/usr/local/bin/pnpm或/home/你的用户名/.local/share/pnpm/pnpm
- Windows:
-
Volta Path: volta 可执行文件路径
- Windows:
C:\Users\你的用户名\AppData\Local\Volta\volta.exe - Unix:
/home/你的用户名/.volta/bin/volta
- Windows:
-
Mise Path: mise 可执行文件路径
- Windows:
C:\Users\你的用户名\AppData\Local\Microsoft\WinGet\Links\mise.exe - Unix:
/home/你的用户名/.local/bin/mise
- Windows:
-
Preferred Tool: 首选工具(auto/nvm/fnm/pnpm/volta/mise)
auto: 自动选择(优先 nvm,其次 fnm,再次 volta,然后 mise,最后 pnpm)nvm: 强制使用 nvmfnm: 强制使用 fnmpnpm: 强制使用 pnpmvolta: 强制使用 Voltamise: 强制使用 mise
-
Auto Apply Nvmrc: 是否自动应用 .nvmrc/.node-version 文件或 Volta package.json 配置(默认:true)
你可以在终端运行以下命令找到工具的路径:
- Windows:
where nvm、where fnm、where pnpm、where volta或where mise - Linux/macOS:
which nvm、which fnm、which pnpm、which volta或which mise
- 点击状态栏右下角的 Node 版本指示器
- 或者打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P)并输入 "Node: Switch Version" - 从列表中选择一个已安装的版本
- 选择切换范围(全局或本地)
- 打开命令面板并输入 "Node: Install Version"
- 输入要安装的版本号(例如:24, 22.1.0, lts)
- 等待安装完成
- 选择是否将新安装的版本设为活动版本
在项目根目录创建 .nvmrc 文件,指定 Node 版本:
20.10.0
或者只指定主版本号:
20
在项目根目录创建 .node-version 文件,指定 Node 版本:
20.10.0
或者只指定主版本号:
20
在项目的 package.json 文件中添加 Volta 配置:
{
"volta": {
"node": "20.10.0"
}
}当你打开包含 .nvmrc、.node-version 文件或 Volta 配置的项目时,扩展会自动询问是否切换到指定的版本。
- 打开命令面板并输入 "Node: Show Current Version"
- 或者查看状态栏右下角的版本指示器
- 打开命令面板并输入 "Node: Refresh Versions"
fast-node-switcher.switchVersion- 切换 Node 版本fast-node-switcher.showCurrentVersion- 显示当前 Node 版本fast-node-switcher.installVersion- 安装新的 Node 版本fast-node-switcher.refreshVersions- 刷新版本列表
此扩展通过调用版本管理工具的 CLI 命令来管理 Node.js 版本:
nvm list- 列出已安装的版本nvm current- 获取当前版本nvm use <version>- 切换版本nvm install <version>- 安装版本nvm alias default <version>- 设置默认版本(Unix)
fnm list- 列出已安装的版本fnm current- 获取当前版本fnm use <version>- 切换版本fnm install <version>- 安装版本fnm list-remote- 列出可安装的版本
pnpm env list- 列出已安装的版本pnpm env use --global <version>- 安装并切换到指定版本pnpm env add --global <version>- 安装版本(不切换)pnpm env list --remote- 列出可安装的版本pnpm env remove --global <version>- 删除版本
mise ls node- 列出已安装的版本mise current node- 获取当前版本mise use node@<version>- 切换版本mise install node@<version>- 安装版本
volta list- 列出已安装的版本volta list --current- 获取当前版本volta install node@<version>- 安装并设置为全局默认版本volta pin node@<version>- 在项目中固定版本(写入 package.json)
- 全局:使用
nvm use <version>并设置为默认版本 - 本地:在项目目录创建
.nvmrc文件
- 全局:fnm 不支持通过此扩展进行全局切换(需要 shell 环境变量支持)
- 本地:在项目目录创建
.node-version文件,fnm 会自动检测并使用
注意:使用 fnm 时,此扩展只会创建 .node-version 文件。你需要打开新的终端窗口,fnm 才会检测并切换到指定版本。
- 全局:使用
pnpm env use --global <version>,设置为全局默认版本 - 本地:pnpm 不支持项目级别的版本切换
注意:pnpm env 只支持全局作用域。如果在扩展中选择"本地"作用域,会显示警告并使用全局作用域。
- 全局:使用
volta install node@<version>,设置为全局默认版本 - 本地:使用
volta pin node@<version>,配置保存在项目的package.json文件中
- 全局:使用
mise use --global node@<version>,配置保存在~/.config/mise/config.toml - 本地:使用
mise use node@<version>,配置保存在当前目录的mise.toml或.mise.toml文件中
当系统同时安装了多个版本管理工具时,扩展会按以下优先级选择:
- 用户配置的首选工具(如果设置了
preferredTool) - nvm (Windows 上为 nvm-windows)
- fnm
- Volta
- mise
- pnpm
你可以在设置中修改 preferredTool 来改变这个行为。
- 克隆或下载此仓库
- 在 VSCode 中打开该文件夹
- 按
F5在新的扩展开发主机窗口中运行扩展
npm install -g @vscode/vsce
cd fast-node-switcher
npm install
vsce package然后在 VSCode 中安装生成的 .vsix 文件:
- 打开 VSCode
- 按
Ctrl+Shift+P/Cmd+Shift+P打开命令面板 - 输入 "Extensions: Install from VSIX..."
- 选择生成的
.vsix文件
- 系统中必须安装 nvm、fnm、pnpm、Volta 或 mise(至少一个)
- VSCode 版本 1.60.0 或更高
确保 nvm、fnm、pnpm、Volta 或 mise 已正确安装并添加到 PATH 中。你可以在终端运行以下命令来验证:
nvm --version(Windows) 或nvm --version(Unix)fnm --versionpnpm --versionvolta --versionmise --version
- 如果使用全局切换,可能需要重启终端或 VSCode
- 如果使用本地切换,确保在项目根目录下执行
- 对于 nvm,确保终端已正确配置(Unix 系统需要在 shell 配置文件中 source nvm.sh)
检查设置中的 "Auto Apply Nvmrc" 选项是否已启用。对于 Volta 用户,确保 package.json 中有正确的 volta 配置。
nvm-windows 只支持全局切换。当选择"本地"作用域时,扩展会创建 .nvmrc 文件作为提示,但实际切换仍然是全局的。
fnm 通过 shell 集成来管理 Node 版本,此扩展采用以下方式支持 fnm:
- 仅支持本地(项目级别)切换:扩展会在项目根目录创建
.node-version文件 - 不提供全局切换选项:因为全局切换需要 shell 环境变量支持,在 VSCode 中无法可靠实现
- 必须先配置 shell:确保你的 shell 配置文件(如
.bashrc、.zshrc、profile.ps1等)中已添加fnm env --use-on-cd初始化代码(参见安装说明) - 版本切换需要新终端:创建
.node-version文件后,打开新的终端窗口,fnm 会自动检测并切换到指定版本
如果需要全局切换 Node 版本,建议:
- 直接在终端中使用
fnm use <version>或fnm default <version>命令 - 或者使用 nvm-windows(Windows)/ nvm(Unix),它们支持通过此扩展进行全局切换
- 提示切换成功后依旧未找到node
- 确保激活了mise的环境变量 Activate mise
- 仅支持全局切换:pnpm env 命令只支持全局作用域,不支持项目级别的版本管理
- 需要 pnpm v7+:pnpm env 命令在 pnpm v7.0.0 及以上版本中可用
- 版本别名支持:支持使用
lts、latest、nightly、rc等别名 - 自动安装:如果选择的版本未安装,扩展会自动调用
pnpm env add --global安装 - 需要结束node后台进程: 因为pnpm需要覆盖原始文件,因此需要结束进程后再进行切换
- nvm (Unix) GitHub 仓库
- nvm-windows GitHub 仓库
- fnm GitHub 仓库
- pnpm 官方网站
- pnpm 官方文档
- Volta 官方网站
- Volta 官方文档
- mise 官方文档
- mise GitHub 仓库
- 更新 Node.js 使用了官方安装包的提示
- 调整工具优先级:nvm > fnm > Volta > mise > pnpm
- 修复 pnpm 在 windows 下无法切换 Node.js 版本
- 添加 pnpm 支持
- 支持 pnpm env 命令进行 Node.js 版本管理
- 更新工具优先级:nvm > fnm > pnpm > Volta > mise
- 添加 pnpm 相关配置选项
- 添加 fnm 支持
- 支持 fnm .node-version 配置文件自动检测
- 更新工具优先级:nvm > fnm > Volta > mise
- 添加 fnm 相关配置选项
- 添加 Volta 支持
- 支持 Volta package.json 配置自动检测
- 更新工具优先级:nvm > Volta > mise
- 添加 Volta 相关配置选项
- 修改名称
- 添加 nvm 和 nvm-windows 支持
- 添加 .nvmrc 文件自动检测和应用
- 重构代码架构,采用策略模式
- 改进工具检测逻辑
- 更新命令标题(从 "Mise:" 改为 "Node:")
- 添加新的配置选项
- 初始版本,支持 mise