Volta,Windows下丝滑的 Node 版本管理工具

51 阅读2分钟

做前端开发基本都逃不开 Node 版本适配的坑:老的项目只能跑 Node14,主流新项目用 Node18,一些新技术栈又得升级 Node20。多个项目来回切换开发,版本乱跳、打包报错是常有的事。

我以前基本都用 nvm-windows 来管理版本,但是如果需要同时运行一个老项目和一个新项目,只能先运行新项目,然后nvm use 切换到node低版本,很麻烦;

vm-windows 致命短板(Windows 用户深有体会): 它不支持单终端窗口局部环境切换,所有版本切换都是全局生效。你在当前窗口切了 Node 版本,会直接改动整个系统的全局 Node 版本;

Volta 完全规避了这个问题:依靠 Shim 垫片机制,不改动系统全局环境,只根据当前项目目录自动匹配版本。进 A 文件夹自动用 Node18,切 B 文件夹自动用 Node20,多开终端、多开项目互不干扰,全程不用手动输任何命令,完全无感切换。

Windows 下 Volta 完整安装与使用教程

安装 Volta

命令行安装

打开 PowerShell,执行系统自带包管理命令:

winget install Volta.Volta

基础用法

设置系统默认 Node 版本

这里设置系统通用的默认 Node 版本,所有没有绑定 Volta 配置的项目,都会默认使用这个版本:

# 安装并设置 Node20 为全局默认版本
volta install node@20

# 安装常用包管理器
volta install pnpm yarn npm

给单个项目绑定指定 Node 版本(核心功能)

如果某个老项目需要固定特定 Node 版本,直接在项目根目录执行以下命令,Volta 会自动下载对应版本并锁定到当前项目:

# 当前项目固定使用 Node18
volta pin node@18

# 同时锁定 npm 版本(可选)
volta pin npm@9

执行后 package.json 会自动生成如下配置,跟随项目提交仓库:

{
  "volta": {
    "node": "18.20.4",
    "npm": "9.8.1"
  }
}

配置完成后,不管是自己开发还是团队协作,只要进入这个项目,就会自动切换锁定版本,再也不会出现环境不一致的问题。

常用管理命令

# 查看已安装的所有工具和版本
volta list

# 升级全局工具
volta upgrade

# 卸载指定版本
volta uninstall node@18