在项目中使用Volta控制node版本
前端的技术很多年前就已经是井喷的状态了,基本每一年都有技术的迭代,而node作为前端基石之一也是一年一个样,这就导致了不同年代的版本使用不同的项目会经常出问题,高版本的node无法用于老的项目。之前大家的解决方案都是nvm
,这里我给大家推荐一下Volta。
一、为什么会需要Volta
起初Volta只是我电脑安装nvm有问题的替代方案,但在使用过程中我认为Volta是nvm的完美替代者,它能很好的解决一些nvm的痛点。
1.不同的项目需要频繁的切换node版本
假设我们有三个项目,一个是老的项目,一个是需要迁移的新的项目,还有一个是组件库或者别的什么项目,这三个项目是不同时期的产物,假设老的项目版本要求是node@14,新的项目是node@16,组件库的要求是node@18,这样我们在启动这些项目的时候就需要频繁的切换node的版本。
Volta就不会出现这种情况,当我们使用下面的命令时:
$ volta pin node@14
在项目的package.json
文件中会出现如下配置:
"volta": {
"node": "14.21.3"
}
Volta会自动选择你指定的大版本下的最优版本,有了这个配置后Volta会自动使用这个版本去运行该项目无需手动切换node版本。
2.统一管理node版本,无需保存对应项目的node版本记录
如果使用nvm进行node版本管理,我们需要清楚的知道项目所使用的node版本,所以一般会将node版本写在readme
中,但是很难保证所有公司的每个项目都是按规范来的,而当我们使用Volta管理node版本的时候我们会将node版本限制在package.json
中,这更像是一种强规范。
3.可以单独设置npm版本
npm一般都是和node绑定的,下载node的时候也会将对应版本的npm下载下来,所以nvm只能通过切换node版本来切换npm版本,而Volta可以单独设置npm的版本。
$ volta install npm@6.14.8
$ volta install yarn@1.19.2
但是需要注意的是,包管理器npm
和yarn
都是基于node的包管理器,所以限制它们版本前必须先限制node的版本
$ volta pin node@16.20.2
$ volta pin yarn@1.19.2
$ volta pin npm@6.14.8
生成的限制如下:
"volta": {
"node": "16.20.2",
"yarn": "1.19.2",
"npm": "6.14.8"
}
二、Volta的优缺点
优点
- 使用rust构建,速度快
- 跨平台
- 可以强制指定node版本
- 全局安装的包和node版本相关联,不同版本之间的包会有隔离
缺点
- 对pnpm的兼容性不太好
- 社区支持有限,可能会出现未知问题
- Volta对32为node的支持可能会有些问题
三、Volta的常用命令
$ volta install node # 下载最新版本的node
$ volta install node@16.20.2 # 下载指定node
$ volta install node@14 # 下载指定大版本下的node
$ volta uninstall node@16.20.2 # 卸载指定node
$ volta pin node@16.20.2 # 限制项目node版本
$ volta list all # 查看volta下载的所有内容
$ volta list node # 查看volta下载的node
如果需要查看其他所有命令可以直接键入
$ volta
命令行会出现Volta所支持的所有命令。
四、Volta的安装
1.下载
[Volta中文网站](Volta (jikun.dev))和Volta官网都有如何下载安装的步骤,这里给出下载链接https://github.com/volta-cli/volta/releases/download/v1.1.1/volta-1.1.1-windows-x86_64.msi。
2.安装
下载Volta后我们双击安装,一直next即可,需要注意的是Volta无法更改安装目录,默认会安装在C盘,其实此时Volta安装后就可以使用了,但是可能会有人觉得在C盘有点膈应,所以我们可以手动移动Volta文件夹到其他盘,这其实有点像Google Chrome。
3.文件夹移动
直接在C盘中找到Volta文件夹,然后直接将整个文件夹剪切到其他盘中。剪切后使用Volta应该会出现Volta不是一个命令的问题,所以这个时候我们需要更改一下环境变量。
4.设置环境变量
打开环境变量设置,首先新建用户环境变量和系统变量,两个变量变量名和值都是一样的,变量名为**VOLTA_HOME
,值为剪切后的Volta文件夹路径,我这里是D:\Volta
**
然后在用户变量和系统变量中找到Path,然后新建点击新建并输入**%VOLTA_HOME%**
当然如果最开始安装Volta的时候如果给予了权限那么Volta应该是有默认的环境变量的,那么我们将上面新建的操作更改为替换默认的Volta环境变量即可。
需要注意的是:有人可能在最开始就有设置node的环境变量,如果Volta的环境变量在node的环境变量后面那么我们使用node的时候默认还是会走的node而不是Volta下载的node
如果我们在cmd中键入Volta出现如下显示时代表Volta就可以正常使用了