本文档涵盖了 Gumroad 代码库中 Node.js 和 Ruby 环境的依赖管理配置。它解释了版本锁定策略、npm 配置设置,以及如何在不同开发环境中强制执行包版本。
有关包含这些包管理器的本地开发环境设置,请参阅本地开发环境设置。有关可能作为包管理的开发工具,请参阅代码质量工具。
Gumroad 项目使用双语言栈,包含 Node.js 和 Ruby 依赖项。包管理通过版本锁定文件和配置进行处理,以确保开发、CI/CD 和生产部署环境的一致性。
来源: .node-version1 .ruby-version1 .npmrc1-2
项目使用明确的版本锁定文件,以确保所有开发人员和 CI/CD 系统都使用相同的运行时版本。这可以防止特定于环境的错误,并确保所有部署的行为一致。
Node.js 版本锁定为 20.17.0,具体请参阅 .node-version1。此 LTS 版本提供了稳定性,同时支持前端构建管道所需的现代 JavaScript 功能。
位于 .npmrc1-2 的 npm 配置包含两个关键设置
| 设置 | 值 | 目的 |
|---|---|---|
resolution-mode | highest | 在依赖解析期间选择最高兼容版本 |
peers-suffix-max-length | 0 | 禁用包名中的对等依赖后缀生成 |
resolution-mode=highest 设置确保当多个版本能够满足依赖范围时,npm 会选择最高兼容版本。这可以在保持兼容性的同时,获取最新的错误修复和安全补丁。
Ruby 版本 3.4.3 在 .ruby-version1 中指定。此文件由 rbenv 等 Ruby 版本管理器自动读取,以确保所有开发环境中 Ruby 运行时版本的一致性。
来源: .ruby-version1
Ruby 版本文件确保本地开发、CI/CD 流水线和 Docker 构建都使用相同的 Ruby 运行时版本,从而防止特定于版本的兼容性问题。
两个版本文件都作为不同环境中运行时版本的权威来源
npm 配置影响整个开发生命周期中的包解析行为