Node.js 版本管理的最终答案 Volta

文章目录

    • 特点
    • 安装
    • 常用命令
      • [volta fetch](#volta fetch)
      • [volta install](#volta install)
      • [volta uninstall](#volta uninstall)
      • [volta pin](#volta pin)
      • [volta list](#volta list)
      • [volta completions](#volta completions)
      • [volta which](#volta which)
      • [volta setup](#volta setup)
      • [volta run](#volta run)
      • [volta help](#volta help)
    • 建议

目前对于前端项目的node 版本,我们一般会在项目 package.jsonengines 字段中声明项目所需的版本,同时采用 nvm 管理不同版本的 Nodejs 实例,但是如果要并行的项目很多,这就是一个痛点。

Volta就是为了解决这个问题而出现的,Node.js 版本管理的最终答案。

特点

Volta 采用 Rust 编写,性能非常棒。使用 Volta,你可以在手动给项目选择一个 Node 版本,然后再也不必关心它,甚至可以在不同项目目录之间任意切换,也不再需要手动在不同 Node 版本之间切换。

  • ⚡ 速度快 ⚡
  • 无缝的按项目版本切换
  • 跨平台支持,包括 Windows 和所有 Unix shell
  • 支持多个软件包管理器
  • 稳定的工具安装 --- 无需在每次 Node 升级时重新安装!
  • 可扩展性钩子,用于特定站点的定制化

安装

Unix系统安装

在包括 macOS 在内的大多数 Unix 系统上,可以使用单个命令安装 Volta:

js 复制代码
curl https://get.volta.sh | bash

Windows系统安装

对于 Windows,推荐的安装 Volta 的方法是使用 winget

js 复制代码
winget install Volta.Volta

更多内容可以去看Volta文档,目前生态肯定没那么完善,在windows系统上肯定处处碰壁,我的建议是先了解了解,之后确实有需要再去使用,当然铁头娃的话,也可以去用。

常用命令

volta 命令行二进制文件的命令参考,其语法如下:

volta fetch

volta fetch 这个命令用于将一个工具下载到本地机器上。它通常用于获取 Node.js 或 npm 的特定版本。

volta install

volta install 这个命令用于在您的工具链中安装一个工具。例如,您可以安装特定的 Node.js 或 npm 版本。

volta uninstall

volta uninstall 这个命令用于从您的工具链中卸载一个工具。如果您不再需要某个版本的 Node.js 或 npm,可以使用这个命令卸载它。
注意: 从 Volta 0.9.0 开始,还可以使用包管理器使用 npm uninstall --globalyarn global remove 卸载包

volta pin

volta pin 这个命令用于将项目的运行时或包管理器固定到特定的版本。这确保了所有团队成员在运行该项目时都使用相同的 Node.js 或 npm 版本。
注意:volta pin仅适用于节点和包管理器(例如npm或Yarn)。对于依赖项,应该使用 npm installyarn add 来更新所选版本。

volta list

volta list 这个命令用于显示当前的工具链。它列出了所有已安装的 Node.js 和 npm 版本。

volta completions

volta completions 这个命令用于生成 Volta 的自动补全脚本。这可以简化在命令行中使用 Volta 的过程。

volta which

volta which 命令将解包Volta的垫片并找到Volta将启动的实际二进制文件。

volta setup

volta setup 这个命令用于为当前用户或 shell 启用 Volta。它通常在安装 Volta 后运行,以确保 Volta 在您的环境中正确配置。
在 Unix 上,volta setup 将使用以下列表搜索配置文件脚本:

  • ~/.profile
  • ~/.bash_profile
  • ~/.bashrc
  • ~/.zshrc
  • ~/.config/fish/config.fish
  • PROFILE 环境变量的值

对于存在的每个文件,volta 安装程序将对其进行修改,以包含定义 VOLTA_HOME 的行,并将 $VOLTA_HOME/bin 添加到 PATH 环境变量中。如果当前 shell 的配置文件(使用 $SHELL 环境变量检测)不存在,则如果可能,将使用适当的内容创建该文件。
在 Windows 上,volta 设置将修改 User Path 环境变量以包含填充码目录 (%LOCALAPPDATA%\Volta\bin)

volta run

volta run 这个命令的主要用途是在不改变全局 Node.js 环境的情况下,运行特定版本的 Node.js

  • 任何没有直接指定版本的工具都将由 Volta 的常规上下文检测确定其版本,使用项目中的固定版本或默认版本。
  • --no-yarn 标志允许您覆盖该决定,并强制在运行命令时环境中不包含任何 yarn。同样,--bundled-npm 标志允许您强制 npm 使用与 Node 捆绑的版本并忽略任何自定义版本。
  • 还可以使用 --env NAME=value 选项指定要传递给命令的自定义环境变量。

注意:版本设置必须位于要运行的命令之前。命令之后的任何内容都将被视为参数,Volta 不会读取

volta help

打印 Volta 的帮助信息

建议

个人觉得目前保持观望,并且watch,生态并没那么完善,盲目使用会遇到很多问题。

就比如使用它设置项目的nodejs跟yarn的版本

js 复制代码
volta pin node@20.16
volta pin yarn@1.19

volta会在package.json生成对应配置

js 复制代码
"volta": {
  "node": "20.16.0",
  "yarn": "1.19.2"
}

然后这个项目使用volta的人都会获得相同的版本

js 复制代码
node --version # 20.16.0
yarn --version # 1.19.2

但是你怎么能保证所有人都安装volta呢,除非特别规范的团队可以做到,开发工具ide等等的统一,不然没使用volta的人还是得自己手动安装,

而且volta跟nvm是有冲突的,你必须先把nvm相关的东西卸载干净了再去使用

还有就是使用pnpm好像也有一些问题,具体没仔细看是啥。

相关推荐
m0_748256142 小时前
最新最详细的配置Node.js环境教程
node.js
m0_748250932 小时前
node.js下载、安装、设置国内镜像源(永久)(Windows11)
node.js
OpenTiny社区6 小时前
Node.js技术原理分析系列——Node.js的perf_hooks模块作用和用法
前端·node.js
m0_748235077 小时前
如何自由切换 Node.js 版本?
node.js
HugeYLH8 小时前
解决npm问题:错误的代理设置
前端·npm·node.js
杰九9 小时前
【环境配置】maven,mysql,node.js,vue的快速配置与上手
java·vue.js·spring boot·mysql·node.js·maven
GISer_Jing9 小时前
Node.js中如何修改全局变量的几种方式
前端·javascript·node.js
垣宇1 天前
Vite 和 Webpack 的区别和选择
前端·webpack·node.js
爱吃南瓜的北瓜1 天前
npm install 卡在“sill idealTree buildDeps“
前端·npm·node.js
翻滚吧键盘1 天前
npm使用了代理,但是代理软件已经关闭导致创建失败
前端·npm·node.js