在项目中使用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 npm@6.14.8
$ volta install yarn@1.19.2

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

bash 复制代码
$ volta pin node@16.20.2
$ volta pin yarn@1.19.2
$ volta pin npm@6.14.8 

生成的限制如下:

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 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

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

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)

相关推荐
恋猫de小郭37 分钟前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅7 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60618 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅9 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment9 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅9 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊9 小时前
jwt介绍
前端