固定 Node 版本
Volta 最强大的功能之一是能够将特定工具版本固定到您的项目,确保在项目上工作的每个人都使用完全相同的工具链。
为什么要固定版本?
- 一致性:团队中的每个人都使用相同的版本
- 可重现性:构建环境与开发环境匹配
- 可靠性:不会因意外的工具行为而产生意外
- 入职:新团队成员自动获得正确的设置
如何固定 Node.js
要将特定的 Node.js 版本固定到您的项目:
bash
volta pin node@16.14.2
此命令:
- 下载并安装 Node.js 16.14.2(如果尚未存在)
- 使用
volta
部分更新您的package.json
- 使项目在您在项目目录中运行
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,它将自动使用您的固定版本