做前端开发基本都逃不开 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