介绍
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_64 | volta-2.0.2-windows-x86_64.msi 双击 MSI 文件并按照安装向导进行操作。安装程序将自动将 Volta 添加到您的 PATH 中。 |
| Windows ARM64 | volta-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/ARM64 | volta-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_64 | volta-2.0.2-linux.tar.gz 解压 tarball 并运行包含的安装脚本:tar xzf volta-2.0.2-linux.tar.gz && ./volta-2.0.2-linux/install.sh |
| Linux ARM | volta-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 手动安装步骤
- 为您的系统架构(x86_64 或 ARM64)下载相应的 MSI 安装程序
- 双击下载的文件运行安装程序
- 按照安装向导提示进行操作
- 安装程序将自动将 Volta 添加到您的系统 PATH
- 打开一个新的命令提示符或 PowerShell 窗口开始使用 Volta
ZIP 安装方式:
- 为您的系统架构下载相应的 ZIP 文件
- 将 ZIP 文件解压到您选择的目录(例如,
C:\Program Files\Volta) - 将解压的目录添加到您的系统 PATH 环境变量中
- 打开一个新的命令提示符或 PowerShell 窗口开始使用 Volta
macOS 手动安装步骤
-
下载 macOS tarball
-
打开终端并导航到下载位置
-
解压 tarball 并运行安装脚本:
tar xzf volta-2.0.2-macos.tar.gz ./volta-2.0.2-macos/install.sh -
安装脚本将:
- 将 Volta 二进制文件放置在
~/.volta/bin中 - 更新您的 shell 配置文件以将 Volta 添加到您的 PATH
- 将 Volta 二进制文件放置在
-
重启您的终端或运行
source ~/.bashrc(或您相应的 shell 配置文件)
Linux 手动安装步骤
-
为您的系统架构(x86_64 或 ARM)下载相应的 Linux tarball
-
打开终端并导航到下载位置
-
解压 tarball 并运行安装脚本:
tar xzf volta-2.0.2-linux.tar.gz ./volta-2.0.2-linux/install.sh -
安装脚本将:
- 将 Volta 二进制文件放置在
~/.volta/bin中 - 更新您的 shell 配置文件以将 Volta 添加到您的 PATH
- 将 Volta 二进制文件放置在
-
重启您的终端或运行
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
此命令:
- 下载并安装 Node.js 16.14.2(如果尚未存在)
- 使用
volta部分更新您的package.json - 使项目在您在项目目录中运行
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,它将自动使用您的固定版本