Skip to content

固定 Node 版本

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

为什么要固定版本?

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

如何固定 Node.js

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

bash
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 现在将包含:

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

固定包管理器

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

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

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

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

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

使用固定的工具

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

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

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

更新固定版本

要更新固定版本:

bash
volta pin node@latest
volta pin npm@latest

或指定新版本:

bash
volta pin node@18

最佳实践

何时固定

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

版本选择

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

CI/CD 集成

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

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