在项目中使用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)

相关推荐
—Qeyser3 小时前
用 Deepseek 写的uniapp血型遗传查询工具
前端·javascript·ai·chatgpt·uni-app·deepseek
codingandsleeping3 小时前
HTTP1.0、1.1、2.0 的区别
前端·网络协议·http
小满blue3 小时前
uniapp实现目录树效果,异步加载数据
前端·uni-app
天天扭码4 小时前
零基础 | 入门前端必备技巧——使用 DOM 操作插入 HTML 元素
前端·javascript·dom
咖啡虫5 小时前
css中的3d使用:深入理解 CSS Perspective 与 Transform-Style
前端·css·3d
拉不动的猪5 小时前
设计模式之------策略模式
前端·javascript·面试
旭久5 小时前
react+Tesseract.js实现前端拍照获取/选择文件等文字识别OCR
前端·javascript·react.js
橘右溪5 小时前
Node.js中fs模块详解
node.js
独行soc5 小时前
2025年常见渗透测试面试题-红队面试宝典下(题目+回答)
linux·运维·服务器·前端·面试·职场和发展·csrf
uhakadotcom6 小时前
Google Earth Engine 机器学习入门:基础知识与实用示例详解
前端·javascript·面试