📌 项目地址nodejs/node | ⭐ 118,424 颗星 | 🔧 JavaScript | 📜 未标注

项目是什么

Node.js 是开源、跨平台的 JavaScript 运行时,GitHub 上 nodejs/node 仓库有 118,424 个星。README 第一句就写清楚了它的身份。项目由 OpenJS Foundation 支持,采用开放治理模型。Technical Steering Committee(TSC)主导决策,同时有权限制持续破坏协作氛围的贡献者。代码库根目录有 CODE_OF_CONDUCT.md,所有参与者都必须遵守。

版本体系:三种类型对应不同需求

README 把发布版本分成三类,每种支持周期和稳定性都不一样。

  • Current:当前开发主线。比如现在主要分支是 v22.x(偶数主版本号)。Node.js 每 6 个月出一个大版本(4 月和 10 月)。每年 10 月发布的 Current 只有 8 个月支持;每年 4 月发布的 Current 会在同年 10 月转换为 LTS。
  • LTS:长期支持版,只有偶数主版本才能成为 LTS。支持期分两段:12 个月 Active LTS(活跃支持)+ 18 个月 Maintenance(维护支持)。LTS 版本有字母顺序的代号,从 v4 Argon 开始,v6 Boron,v8 Carbon,v10 Dubnium……(目前最新是 v20 的 “Iron”)。LTS 聚焦稳定,正常情况下不引入破坏性变更或新功能。
  • Nightly:每天从 Current 分支构建一次,只有代码有变更才触发。README 明确写 “Use with caution”,适合测试开发者,绝不要用于生产。

Current 和 LTS 遵循语义化版本号。每个发布版由 Release 团队某个成员用 GPG 签名,公钥指纹列在 README 末尾的 Release keys 小节。

下载与验证:官方途径只有一条

README 里写死了下载地址:https://nodejs.org/download/release/ 。预编译的二进制、安装器和源码压缩包都在那个页面。latest/ 目录是当前最新 Current 的别名。另外还有 latest-<codename>/ 目录(比如 latest-iron/),可以直接拿到对应 LTS 的最新版本。

验证二进制的方法是 GPG 签名。README 没有给出具体 gpg --verify 命令,但指向了 “Verifying binaries” 的官方文档。你需要做的是:从 Release keys 列表里复制对应发布者的公钥指纹,然后下载 .asc 签名文件,用 gpg --verify 校验。这一步能确保你拿到的文件没有被篡改。

治理模式:透明但强硬

项目治理结构写在 GOVERNANCE.md 里。核心是 TSC(技术指导委员会),他们不仅管技术决策,还在 README 开头直接声明:可以限制或阻止一再打击他人、耗尽别人精力的参与者。这种话写在第一屏,说明项目在处理社区冲突上有实践经验,而且愿意公开规则。

成员分三个层级:TSC、Collaborators(协作者)、Triagers(分类者)。所有名单都在 README 末尾,包括每个人在 GitHub 上的身份。Release keys 也列在那里,每把公钥都有完整指纹。

安全和贡献:不要乱报漏洞

安全漏洞不能提交 GitHub Issue。README 明确要求通过 https://nodejs.org/en/security/ 报告。贡献者可以先读 .github/SUPPORT.md 获得帮助。如果你想贡献代码,README 指向 Contributing to Node.js(未在原文中详细列出,但根目录有)。加入项目需要得到 TSC 认可。

从源码构建:普通用户不必碰

README 有单独的 Building Node.js 章节,提供从源码编译的步骤。需要 GCC/Clang、Python、make 等工具链。但官方推荐直接下载预编译版本,自己编译是贡献者或特殊需求才做的事。

几个值得注意的点

  • 版本代号是字母升序,每两年会跳过一个偶数版本号(比如 v20 之后是 v22)。了解代号可以快速判断当前 LTS 是哪个。
  • Nightly 版每天构建,如果你在试新特性,可以用 docker 拉 node:nightly 镜像,比本地编译方便。
  • 签名验证虽然是可选操作,但 README 把公钥都列出来了,建议大家拿到二进制后顺手做一次。Linux/Mac 下一条命令就能搞定。

===

标签:Node.js, 版本管理, 开源运行时, 二进制验证

这篇文章对你有帮助吗?

发表回复