Volta 的介绍与用法

171 阅读8分钟

介绍

Volta 是一种无痛管理 JavaScript 命令行工具的方式。

使用 Volta,您可以:

  • 运行任何版本的 Node.js,无需手动切换版本
  • 确保您的整个团队使用相同版本的工具,而无需依赖手动流程
  • 在使用不同工具版本的项目之间无缝迁移
  • 安装和管理 npm、yarn、pnpm 和其他 JavaScript 工具

功能

  • 无缝切换:根据您当前的项目自动使用每个工具的正确版本
  • 项目级别固定:在您的 package.json 中指定项目需要的工具(及版本)
  • 高性能:使用 Rust 构建,实现最大速度和最小开销
  • 跨平台:在 macOS、Linux 和 Windows 上一致工作
  • 安装简便:一条命令即可开始使用,无需复杂配置

为什么选择 Volta?

JavaScript 开发涉及各种工具—Node.js、npm、yarn、包可执行文件—所有这些工具在不同项目间可能存在版本不兼容的问题。这会在开发者工作流程中产生摩擦:

  • 在处理特定项目之前需要记得切换到正确的 Node 版本
  • 为新开发者设置正确的工具版本
  • 确保 CI/CD 系统使用与开发环境相同的版本
  • 跨 Node.js 版本管理全局包

Volta 通过创建无缝工作流解决了这些问题,您无需考虑使用哪些版本。每个项目都能自动使用正确的工具,无需手动版本切换或环境设置。

安装 Volta

Unix 安装

在大多数 Unix 系统(包括 macOS)上,您可以使用一条命令安装 Volta:

curl https://get.volta.sh | bash

对于 bash、zsh 和 fish,此安装程序将自动更新您的控制台启动脚本。如果您希望阻止对控制台启动脚本的修改,请参阅跳过 Volta 设置。要手动配置您的 shell 以使用 Volta,请编辑您的控制台启动脚本:

  • 将 VOLTA_HOME 变量设置为 $HOME/.volta
  • 将 $VOLTA_HOME/bin 添加到您的 PATH 变量的开头

Windows 安装

对于 Windows,推荐使用 winget 安装 Volta:

winget install Volta.Volta

如果您愿意,也可以直接下载安装程序并手动运行以安装 Volta。

Windows Linux 子系统

如果您在 Windows Linux 子系统中使用 Volta,请按照上面的 Unix 安装指南进行操作。

手动安装

如果您希望手动安装 Volta,可以从下表中下载适合您操作系统的软件包:

平台软件包与安装说明
Windows x86_64volta-2.0.2-windows-x86_64.msi 双击 MSI 文件并按照安装向导进行操作。安装程序将自动将 Volta 添加到您的 PATH 中。
Windows ARM64volta-2.0.2-windows-arm64.msi 双击 MSI 文件并按照安装向导进行操作。安装程序将自动将 Volta 添加到您的 PATH 中。
Windows x86_64 (ZIP)volta-2.0.2-windows.zip 将 ZIP 文件解压到您选择的位置。将解压的目录添加到您的 PATH 环境变量中。
Windows ARM64 (ZIP)volta-2.0.2-windows-arm64.zip 将 ZIP 文件解压到您选择的位置。将解压的目录添加到您的 PATH 环境变量中。
macOS x86_64/ARM64volta-2.0.2-macos.tar.gz 解压 tarball 并运行包含的安装脚本:tar xzf volta-2.0.2-macos.tar.gz && ./volta-2.0.2-macos/install.sh
Linux x86_64volta-2.0.2-linux.tar.gz 解压 tarball 并运行包含的安装脚本:tar xzf volta-2.0.2-linux.tar.gz && ./volta-2.0.2-linux/install.sh
Linux ARMvolta-2.0.2-linux-arm.tar.gz 解压 tarball 并运行包含的安装脚本:tar xzf volta-2.0.2-linux-arm.tar.gz && ./volta-2.0.2-linux-arm/install.sh

Windows 手动安装步骤

  1. 为您的系统架构(x86_64 或 ARM64)下载相应的 MSI 安装程序
  2. 双击下载的文件运行安装程序
  3. 按照安装向导提示进行操作
  4. 安装程序将自动将 Volta 添加到您的系统 PATH
  5. 打开一个新的命令提示符或 PowerShell 窗口开始使用 Volta

ZIP 安装方式:

  1. 为您的系统架构下载相应的 ZIP 文件
  2. 将 ZIP 文件解压到您选择的目录(例如,C:\Program Files\Volta
  3. 将解压的目录添加到您的系统 PATH 环境变量中
  4. 打开一个新的命令提示符或 PowerShell 窗口开始使用 Volta

macOS 手动安装步骤

  1. 下载 macOS tarball

  2. 打开终端并导航到下载位置

  3. 解压 tarball 并运行安装脚本:

    tar xzf volta-2.0.2-macos.tar.gz
    ./volta-2.0.2-macos/install.sh
    
  4. 安装脚本将:

    • 将 Volta 二进制文件放置在 ~/.volta/bin 中
    • 更新您的 shell 配置文件以将 Volta 添加到您的 PATH
  5. 重启您的终端或运行 source ~/.bashrc(或您相应的 shell 配置文件)

Linux 手动安装步骤

  1. 为您的系统架构(x86_64 或 ARM)下载相应的 Linux tarball

  2. 打开终端并导航到下载位置

  3. 解压 tarball 并运行安装脚本:

    tar xzf volta-2.0.2-linux.tar.gz
    ./volta-2.0.2-linux/install.sh
    
  4. 安装脚本将:

    • 将 Volta 二进制文件放置在 ~/.volta/bin 中
    • 更新您的 shell 配置文件以将 Volta 添加到您的 PATH
  5. 重启您的终端或运行 source ~/.bashrc(或您相应的 shell 配置文件)

选择默认的 Node 版本

这是 Volta 在没有固定版本的项目之外到处使用的版本。

要选择特定版本的 Node,请运行:

volta install node@22.5.1

或者要使用最新的 LTS 版本,请运行:

volta install node

使用 Volta 管理您的项目

在您的项目中使用 Volta 很简单。只需运行:

volta pin node@16

这会在您的 package.json 文件中添加一个 volta 部分,确保所有项目成员使用相同版本的 Node.js。

您也可以固定包管理器:

volta pin npm@8

这样,每当在您的项目中运行 npm 时,Volta 都会确保使用指定的版本。

安装工具

Volta 使您可以轻松地在系统和项目中安装和管理 JavaScript 工具。

安装 Node.js

默认 Node 版本

要将 Node.js 安装为默认版本:

volta install node

此命令安装最新的 LTS(长期支持)版本的 Node.js。要安装特定版本:

volta install node@16
volta install node@16.14.2

您也可以使用版本范围:

volta install node@16.14
volta install node@^16.14

项目特定的 Node 版本

要将特定的 Node.js 版本固定到您的项目:

volta pin node@16.14.2

这会在您的 package.json 文件中添加一个 volta 部分:

{
  "volta": {
    "node": "16.14.2"
  }
}

管理包管理器

默认包管理器

要设置默认包管理器:

volta install npm@8
volta install yarn@1.22
volta install pnpm@7

项目特定的包管理器

要将包管理器版本固定到您的项目:

volta pin npm@8
volta pin yarn@1.22

这会更新您的 package.json

{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

全局包

安装全局工具

要安装全局 JavaScript 包:

volta install typescript
volta install eslint

对于特定版本:

volta install typescript@4.6.3

查看已安装的工具

要查看您已安装的工具:

volta list all

要仅查看特定类型的工具:

volta list node
volta list npm
volta list yarn
volta list packages

更新工具

更新全局工具

要将全局包更新到最新版本:

volta install typescript@latest

更新项目工具

要更新项目特定的工具:

volta pin node@latest
volta pin npm@latest

卸载工具

要卸载全局包:

volta uninstall typescript

要卸载默认工具:

volta uninstall node
volta uninstall npm

注意:如果项目需要该工具,这不会将其从系统中删除。

固定 Node 版本

Volta 最强大的功能之一是能够将特定工具版本固定到您的项目,确保在项目上工作的每个人都使用完全相同的工具链。

为什么要固定版本?

  • 一致性:团队中的每个人都使用相同的版本
  • 可重现性:构建环境与开发环境匹配
  • 可靠性:不会因意外的工具行为而产生意外
  • 入职:新团队成员自动获得正确的设置

如何固定 Node.js

要将特定的 Node.js 版本固定到您的项目:

volta pin node@16.14.2

此命令:

  1. 下载并安装 Node.js 16.14.2(如果尚未存在)
  2. 使用 volta 部分更新您的 package.json
  3. 使项目在您在项目目录中运行 node 时使用 Node.js 16.14.2

您的 package.json 现在将包含:

{
  "volta": {
    "node": "16.14.2"
  }
}

固定包管理器

您也可以固定包管理器的特定版本:

volta pin npm@8.5.0
volta pin yarn@1.22.18
volta pin pnpm@7.0.0

这确保每个人都使用相同的包管理器版本,防止锁文件不一致和其他版本问题。

固定 npm 后,您的 package.json 将如下所示:

{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

使用固定的工具

一旦工具被固定,就不需要额外的命令。只需导航到您的项目目录并正常运行命令:

# 这些将使用您项目的固定版本
node --version
npm --version

Volta 自动检测您何时在具有固定版本的目录中,并使用它们而不是您的默认工具。

更新固定版本

要更新固定版本:

volta pin node@latest
volta pin npm@latest

或指定新版本:

volta pin node@18

最佳实践

何时固定

  • 对于生产应用程序:始终固定 Node 和您的包管理器
  • 对于库/包:如果您的代码依赖特定的 Node 功能,请固定 Node
  • 对于工具/实用程序:固定功能所需的最低 Node 版本

版本选择

  • 对于应用程序,选择 Node 的 LTS(长期支持)版本
  • 对于库,使用您想要支持的最旧的 Node 版本
  • 定期更新版本以从安全修复中受益

CI/CD 集成

确保您的 CI/CD 流水线尊重您的固定版本:

  • 在 GitHub 工作流程中使用 Volta GitHub Action
  • 对于其他 CI 系统,安装 Volta,它将自动使用您的固定版本

参考地址:zh.voltajs.com/guide/manag…