在项目中使用Volta控制node版本

在项目中使用Volta控制node版本

前端的技术很多年前就已经是井喷的状态了,基本每一年都有技术的迭代,而node作为前端基石之一也是一年一个样,这就导致了不同年代的版本使用不同的项目会经常出问题,高版本的node无法用于老的项目。之前大家的解决方案都是nvm,这里我给大家推荐一下Volta

一、为什么会需要Volta

起初Volta只是我电脑安装nvm有问题的替代方案,但在使用过程中我认为Volta是nvm的完美替代者,它能很好的解决一些nvm的痛点。

1.不同的项目需要频繁的切换node版本

假设我们有三个项目,一个是老的项目,一个是需要迁移的新的项目,还有一个是组件库或者别的什么项目,这三个项目是不同时期的产物,假设老的项目版本要求是node@14 ,新的项目是node@16 ,组件库的要求是node@18,这样我们在启动这些项目的时候就需要频繁的切换node的版本。

Volta就不会出现这种情况,当我们使用下面的命令时:

bash 复制代码
$ volta pin node@14

在项目的package.json文件中会出现如下配置:

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的版本。

bash 复制代码
$ volta install [email protected]
$ volta install [email protected]

但是需要注意的是,包管理器npmyarn都是基于node的包管理器,所以限制它们版本前必须先限制node的版本

bash 复制代码
$ volta pin [email protected]
$ volta pin [email protected]
$ volta pin [email protected] 

生成的限制如下:

json 复制代码
  "volta": {
    "node": "16.20.2",
    "yarn": "1.19.2",
    "npm": "6.14.8"
  }

二、Volta的优缺点

优点

  1. 使用rust构建,速度快
  2. 跨平台
  3. 可以强制指定node版本
  4. 全局安装的包和node版本相关联,不同版本之间的包会有隔离

缺点

  1. 对pnpm的兼容性不太好
  2. 社区支持有限,可能会出现未知问题
  3. Volta对32为node的支持可能会有些问题

三、Volta的常用命令

bash 复制代码
$ volta install node # 下载最新版本的node
$ volta install [email protected] # 下载指定node
$ volta install node@14 # 下载指定大版本下的node
$ volta uninstall [email protected] # 卸载指定node
$ volta pin [email protected] # 限制项目node版本
$ volta list all # 查看volta下载的所有内容
$ volta list node # 查看volta下载的node

如果需要查看其他所有命令可以直接键入

bash 复制代码
$ volta

命令行会出现Volta所支持的所有命令。

四、Volta的安装

1.下载

Volta中文网站\]([Volta (jikun.dev)](https://link.juejin.cn?target=https%3A%2F%2Fvolta.jikun.dev%2F "https://volta.jikun.dev/"))和[Volta官网](https://link.juejin.cn?target=https%3A%2F%2Fvolta.sh%2F "https://volta.sh/")都有如何下载安装的步骤,[这里给出下载链接](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fvolta-cli%2Fvolta%2Freleases%2Fdownload%2Fv1.1.1%2Fvolta-1.1.1-windows-x86_64.msi "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` ![](https://oss.xyyzone.com/jishuzhan/article/1910523065336922114/a23ad6dd05e9a0ccf769de648484ffbb.webp) 然后在用户变量和系统变量中找到**Path** ,然后新建点击新建并输入`%VOLTA\_HOME%` 当然如果最开始安装Volta的时候如果给予了权限那么Volta应该是有默认的环境变量的,那么我们将上面新建的操作更改为替换默认的Volta环境变量即可。 > 需要注意的是:有人可能在最开始就有设置node的环境变量,如果Volta的环境变量在node的环境变量后面那么我们使用node的时候默认还是会走的node而不是Volta下载的node 如果我们在cmd中键入Volta出现如下显示时代表Volta就可以正常使用了 ![在这里插入图片描述](https://oss.xyyzone.com/jishuzhan/article/1910523065336922114/c18b6db121e9b4d31aaf509406e09d35.webp)

相关推荐
前端缘梦4 分钟前
微信小程序登录方案实践-从账号体系到用户信息存储
前端·微信小程序
前端老六喔4 分钟前
🎉 开源项目推荐 | 让你的 TypeScript/React 项目瘦身更简单!
node.js·前端工程化
用户21411832636025 分钟前
02-N8N教程-手把手教你用 PostgreSQL 实现 N8N 数据持久化,生产环境部署实战!
前端
玄玄子6 分钟前
webpack学习指南
前端·webpack·程序员
不爱说话郭德纲8 分钟前
面试官:你给我讲讲async/await
前端·深度学习·面试
前端小巷子9 分钟前
Promise 链式调用:让异步编程更优雅
前端·面试·promise
周日不上发条10 分钟前
前端必学:CSS实现精美渐变色票据组件(含完整源码)
前端
有梦想的攻城狮16 分钟前
从0开始学vue:pnpm怎么安装
前端·javascript·vue.js
pzpcxy52018 分钟前
安装VUE客户端@vue/cli报错警告npm WARN deprecated解决方法 无法将“vue”项识别为 cmdlet、函数
前端·vue.js·npm
醉书生ꦿ℘゜এ18 分钟前
npm error Cannot read properties of null (reading ‘matches‘)
前端·npm·node.js