背景
在开发公司项目是,老项目使用的是16.18.0,新项目有的使用18X或其他版本,目前电脑上使用的是nvm,正在切换项目的使用需要手动切换,如果项目没有标注 版本号那么只能看报错或者一个个的验证,总起来不太方便。
介绍
使用 Volta,您可以一次选择 Node 引擎,然后不再担心它。您可以在项目之间切换,而不必手动切换 nodejs 版本 比nvs,nvm要方便一些。
volta具有以下特点:
- 速度
- 无缝,每个项目的版本切换
- 跨平台支持,包括 Windows 和所有 Unix shell
- 支持多个包管理器
- 稳定的工具安装-无需每次升级都重新安装!
- 可扩展性挂钩用于特定于站点的定制
安装
安装vlota
下载msi安装包直接安装就可以,会默认安装到c盘
修改安装位置
在安装node、npm的时候会安装到安装目录的某个文件夹下面,因此我们转移安装目录
-
在X盘自己创建一个存放
volta的文件夹,我这里是D:\develop\volta -
将
C:\Users\用户名\AppData\Local\Volta复制到D:\develop\volta -
将
C:\Program Files\Volta复制到D:\develop\volta -
修改系统变量
-
win键+R打开运行窗口 输入
sysdm.cpl打开环境变量设置 -
新建系统变量VOLTA_HOME如下图,变量值是刚才创建的目录 我这边是在创建的目录里面又创建了一个
Volta文件夹 -
修改系统变量中的
path,替换volta的默认安装位置 -
修改用户环境变量的
path
-
打开终端,输入volta
修改node、npm安装连接
使用volta安装node@16.18.0的命令是volta install node@18.16.0
安装npm的命令是volta install npm@8.19.2
如果安装失败就现需要配置hooks
原因是因为默认情况下,Volta 从公共源和注册表 (nodejs.org、yarnpkg.com、www.npmjs.com) 获取 Node、npm 和 Yarn。但是,根据您的环境,可能需要告诉 Volta 从其他源下载(例如,用于内部工具的 npm Enterprise)
找到安装目录,在目录下面创建hooks.json文件
ps 注意我的安装目录比上面的说的多了一层 Volta
内容是
{
"node": {
"index": {
"template": "https://mirrors.cloud.tencent.com/nodejs-release/index.json"
},
"distro": {
"template": "https://mirrors.cloud.tencent.com/nodejs-release/v{{version}}/node-v{{version}}-{{os}}-{{arch}}.zip"
}
},
"npm": {
"distro": {
"template": "https://registry.npmmirror.com/npm/-/npm-{{version}}.tgz"
}
}
}
保存文件,重新下载就可以了,我这边只配置了node和npm的其他的没有找到
连接外网可以安装
yarn
接下来正常安装我们需要的node和npm就可以了
我们安装的node、npm等在D:\develop\volta\Volta\tools文件夹中
volta命令
| 命令 | 说明 |
|---|---|
volta list all | 查看当前volta安装的所有内容 |
volta install node@14.17.1 | 安装指定版本的node,并设为默认值 |
volta install node@14 | volta会选择node14中最新稳定的或合适的版本匹配你的请求 |
volta install node | 安装node最新的LTS最新稳定的版本 |
volta install npm | volta安装npm包管理器;选择node的默认版本运行 |
volta install yarn | volta安装yarn包管理器;选择node的默认版本运行 |
volta pin node@14.17.1 | 固定node版本到package.json中 |
olta uninstall [FLAGS] <tool> | volta uninstall命令允许您删除使用volta install安装的任何全局软件包。 |
使用
先看下我的
默认使用的node版本是16.18.0,如果项目的package.json有volta配置就使用配置的,不需要我们手动修改
如果需要切换默认版本 volta install node@19.2.0这样就修改好了
项目设置版本号使用volta pin node@xx