Node.js 25.7.0(Current)发布详解:SEA 支持 ESM 入口、http2 的 HTTP/1 回退配置与下载安装指引
【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org
2026 年 2 月 24 日,Node.js 发布了 25.7.0(Current 版本线),本次迭代带来多项SEMVER-MINOR(向后兼容的新功能)改动,覆盖 HTTP/2、单文件可执行应用(SEA)、Stream、测试运行器等核心模块,同时将node:sqlite标记为 release candidate(RC)状态。本文以 v25.7.0.md 的官方发布说明为主线,结合本仓库(nodejs.org 官方网站源码)中的发布脚本、下载页实现与博客卡片组件,为你完整解读本次发布的 Notable Changes、逐项 Commits 与各平台安装文件清单,并给出校验与安装的实操指引。
版本概况与发布时间线
- 版本号:25.7.0
- 发布线:Current(非 LTS,仍处于积极迭代阶段)
- 发布日期:2026-02-24
- Release 负责人:Ruy Adorno(@ruyadorno),由 @aduh95 准备
根据本站发布数据处理逻辑(releaseData.mjs),非 LTS 且未到 EOL 日期的版本会被标记为Current状态。下载页会根据版本状态自动推荐对应的安装方式,详情可参见 下载页。
Notable Changes:五大关键变更
25.7.0 共有 5 项被列入 Notable Changes 的变更,其中 4 项为 SEMVER-MINOR(向后兼容的新增功能),1 项为模块状态升级。
| 模块 | 变更内容 | 类型 | PR |
|---|---|---|---|
| http2 | 新增http1Options,用于配置 HTTP/1 回退行为 | SEMVER-MINOR | #61713 |
| sea | 支持在 SEA(Single Executable Applications)中使用 ESM 入口点 | SEMVER-MINOR | #61813 |
| sqlite | node:sqlite标记为 release candidate | 状态升级 | #61262 |
| stream | Duplex.toWeb()类型选项更名为readableType | SEMVER-MINOR | #61632 |
| test_runner | 收到 SIGINT 时展示被中断的测试用例 | SEMVER-MINOR | #61676 |
http2:新增http1Options回退配置
本次为 HTTP/2 服务器新增了http1Options选项,用于精细控制 HTTP/1 回退时的行为。这意味着当客户端不支持 HTTP/2 而回退到 HTTP/1.1 协议时,开发者可以在创建服务器时直接传入该配置项,统一管理回退连接的参数,而无需再单独维护一个 HTTP/1 服务器实例。
同一模块还引入了strictSingleValueFields选项(#59917),用于放宽对单值请求头的校验——某些客户端会以多值形式发送本应单值的头字段,严格模式下这些请求会被拒绝,开启该选项后则可按宽松策略处理,提升对真实世界客户端的兼容性。
sea:SEA 支持 ESM 入口点
Single Executable Applications(SEA)此前仅支持 CommonJS 入口,本次更新让开发者可以直接用 ESM 模块作为 SEA 的入口文件进行打包,进一步统一了单文件应用的开发体验。相关配套工作包括:
- 新增 ESM 入口点的启动性能 benchmark(#61769);
--build-sea默认可执行文件路径修复(#61708);- 嵌入运行模块(embedder-run modules)支持
import()与import.meta(#61654)。
sqlite:进入 release candidate 阶段
node:sqlite内置模块在本版本中被正式标记为 release candidate,意味着其 API 已趋于稳定,社区可以放心地在生产环境中试用,并反馈问题以推动其走向正式稳定(Stable)。
stream:Duplex.toWeb()选项更名
Duplex.toWeb()的类型选项由原名更名为readableType,使其语义与 Web Streams 标准中的ReadableStream类型命名保持一致。由于这是类型层面(TypeScript 类型定义)的改名,属于向后兼容的 MINOR 变更;从源码结构看,其核心动机是消除命名歧义、提升 API 可读性。同时本次还为 Web Streams 的read与pipeTo增加了快速路径(#61807),并修复了decoded fromList的 chunk 边界检查问题(#61884)。
test_runner:SIGINT 中断展示
测试运行器(node:test)现在会在进程收到 SIGINT(例如开发者按下 Ctrl+C)时,展示当前被中断的测试用例信息,而不是简单地静默退出。这让长跑测试被手动中断时,开发者仍能定位到中断发生时正在执行的测试,对排查挂起测试非常有帮助。同期还修复了测试套件 rerun 的问题(#61775)。
其余 Commits 分类解读
除上述 Notable Changes 外,25.7.0 还包含数十项常规提交,按模块归类如下:
依赖升级(deps)
- npm 升级至 11.10.1(#61892);
- llhttp 更新至 9.3.1(#61827)——HTTP 解析器的重要升级;
- V8 引擎包含两处 cherry-pick/backport(#61712、#61666);
- nbytes 更新至 0.1.3(#61879),googletest 同步更新(#61731);
- 清理过时的 OpenSSL 架构配置(#61834)。
构建与工具链(build / tools)
- 在受支持的平台上启用 V8 gdbjit 支持(#61010),便于原生调试;
generate_config_gypi.py现在生成合法的 JSON(#61791);- GHA 工作流多项优化:跳过非 main 分支的 sscache 动作、coverage 作业避免二次构建、切换到 ARM runner 与 ubuntu-slim 镜像等;
- Windows 侧新增 WinGet Visual Studio 2022 Build Tools Edition 配置(#61652);
- 移除过时的 Boxstarter 自动安装文档(#61785)。
核心模块修复
- crypto:证书序列号统一以大写形式返回(#61752);
- fs:为
fs.stat/fs.promises.stat新增throwIfNoEntry选项(#61178),路径不存在时不再抛错而是返回 undefined,便于可选文件探测; - http:修复 keep-alive socket 复用竞争(#61710)、在
onSocket中同步挂载 error handler(#61770); - http2:修复
respondWithFile中的 FileHandle 泄漏(#61707); - module:修复带显式
type=commonjs的无扩展名入口解析(#61600); - repl:修复历史初始化中的 FileHandle 泄漏(#61706);
- watch:
--watch现在从execArgv获取 flags(#61779),使 watch 模式能正确继承 Node 启动参数; - worker:消除
process.cwd()的竞争条件(#61664); - zlib:为 Brotli 压缩新增压缩字典(compression dictionary)支持(#61763),同时完成 zstd 流分配的跟踪与内存释放优化(#61717);
- lib:优化
styleText在validateStream为 false 时的性能(#61792),ESM loader 循环依赖减少并纳入启动快照(#61769)。
文档与测试(doc / test)
- 为
node:vm补充 ESM 与 CJS 双示例(#61498); - 明确
events.once()的异步注意事项(#61572); - 澄清威胁模型中构建环境被视为可信环境(#61865);
- 平台列表补充 riscv64 支持信息(#42251);
- WPT(Web Platform Tests)同步更新:FileAPI、WebCryptoAPI、url 等;
test-embedding.js拆分后并行运行(#61571),并支持在 assertSnapshot 中过滤异步内部帧(#61769)。
各平台安装文件与下载指引
25.7.0 的发布文件遵循本站统一的发布模板(见 template.hbs),按"安装包/二进制 + SHASUMS 校验"的结构组织。本次提供的官方下载文件如下(均位于官方 dist 目录v25.7.0/下):
| 平台 | 文件 |
|---|---|
| Windows 64-bit 安装包 | node-v25.7.0-x64.msi |
| Windows ARM 64-bit 安装包 | node-v25.7.0-arm64.msi |
| Windows 64-bit 二进制 | win-x64/node.exe |
| Windows ARM 64-bit 二进制 | win-arm64/node.exe |
| macOS 安装包 | node-v25.7.0.pkg |
| macOS Apple Silicon 二进制 | node-v25.7.0-darwin-arm64.tar.gz |
| macOS Intel 二进制 | node-v25.7.0-darwin-x64.tar.gz |
| Linux x64 二进制 | node-v25.7.0-linux-x64.tar.xz |
| Linux PPC LE 64-bit | node-v25.7.0-linux-ppc64le.tar.xz |
| Linux s390x | node-v25.7.0-linux-s390x.tar.xz |
| AIX 64-bit | node-v25.7.0-aix-ppc64.tar.gz |
| ARMv8 64-bit | node-v25.7.0-linux-arm64.tar.xz |
| 源码包 | node-v25.7.0.tar.gz |
说明:依据发布脚本 downloadsTable.mjs 的规则,自 Node 23 起不再提供 Windows 32-bit 安装包与二进制,自 24 起不再提供 ARMv7 32-bit 二进制,因此 25.7.0 的清单中不包含这些文件;同时 25.7.0 高于 16.0.0,故包含 macOS Apple Silicon 产物。官方下载页还提供了文档(
https://nodejs.org/docs/v25.7.0/api/)与 nightly/历史版本入口,见 current.mdx。
使用 nvm 安装
如果你是 nvm 用户,可参考本站内置的安装脚本片段(nvm.bash):
# 安装 nvm(若尚未安装) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash # 加载 nvm(无需重启 shell) \. "$HOME/.nvm/nvm.sh" # 下载并安装 Node.js(此处会自动解析到 25 主版本的最新版) nvm install 25使用预编译二进制
也可直接下载上表中的.tar.xz/.tar.gz压缩包,解压后将bin目录加入 PATH 即可;Windows 用户优先选择.msi安装包或node.exe独立二进制。
校验发布文件:SHASUMS 与签名验证
每个发布版本都会附上SHASUMS256.txt.asc,其中包含各文件的 SHA-256 校验和,并使用 PGP 签名以保证完整性。发布说明中的 SHASUMS 块由 index.mjs 自动抓取官方校验文件生成。以下是 25.7.0 的关键校验值(部分),完整清单以官方发布文件为准:
500805d140c6eae59705c12eeb4c59954c872b345be3a880dd59d7fa4d134abb node-v25.7.0-aix-ppc64.tar.gz d4e3cfe5e6bddda41ba0c683e37329632465b93371ddc538c763578758d5bc35 node-v25.7.0-darwin-arm64.tar.gz f83929f4a84ae5a88c2a5333466b100dd101658063592497626ae9eea15b3b1b node-v25.7.0-darwin-x64.tar.gz 033ad3a740d62d3c7e3aaa1fecfeec16a719d4af33ab030666bf171057b070d9 node-v25.7.0-linux-x64.tar.gz 2af25e8fc301bb3bbf02874f7d07e1d00483dc143fbd0eb56ee844c17849168e node-v25.7.0-linux-x64.tar.xz c2b5e162efb21a1d41c026bf5b08b3798e2e813b969031b1ed069b167cce77a0 node-v25.7.0-linux-ppc64le.tar.gz 048749b91d9d0946b684a487c465adf56bff983949d8610ba6c0951ae61142ce node-v25.7.0-linux-s390x.tar.xz 3a73c9145547b5d2e29491b0ed6a37b95306b784eb83cdb2361f1e2e76fa237f node-v25.7.0-linux-arm64.tar.gz 2a36edd1c8cc4d275464ff873a199937c8237c13f6943db5f7879f8a83ceddbe node-v25.7.0.tar.gz 8f13df7e8f79c3e8f227ad713c754592293c98f70e9e29e8fcee974e62a000e1 node-v25.7.0.tar.xz 39d400db485fdb261981849a15c52c1f051ff8356c0f75c02bb09151498c290d node-v25.7.0-arm64.msi 5cb49889fd408ab9fe19471b0ab52badaf5724e47a6f824b0e11cafd09576838 node-v25.7.0-x64.msi 477eb8f5499904b2eb76212e0f14f40965c693795b0af8e1500cc7aeaa1c18b8 node-v25.7.0.pkg推荐的下载后校验流程:
- 同时下载目标文件与其对应的
SHASUMS256.txt.asc; - 使用
shasum -a 256 文件名(Linux/macOS)或Get-FileHash(Windows PowerShell)计算本地哈希; - 与发布说明中列出的哈希值比对,一致后再安装;官方下载页也提供了验证签名 SHASUMS 的指引。
这些发布说明在网站中如何呈现
作为 nodejs.org 官网仓库,本次发布说明文件位于 apps/site/pages/en/blog/release/v25.7.0.md,属于release分类。在网站侧,其渲染链路包括:
- 发布脚本:index.mjs 负责从 Node.js changelog 与官方 SHASUMS 文件抓取数据、套用 template.hbs 模板并生成发布博客文件,可通过
node index.mjs [version]运行; - 博客聚合:blog.ts 负责按分类拉取博客文章列表,其中
release分类会映射为 release 预览类型(见 BlogPostCard); - 下载页联动:current.mdx 提供版本选择、操作系统/安装方式/包管理器下拉与预编译下载按钮,并通过 DownloadButton 依据客户端上下文动态生成下载链接。
总结
Node.js 25.7.0 是一次以"补全能力 + 夯实基础"为主的 Current 版本迭代:SEA 支持 ESM 入口点拓宽了单文件应用的适用范围,http1Options让 HTTP/2 服务的 HTTP/1 回退配置更灵活,node:sqlite进入 RC 则预示着内置 SQLite 即将走向稳定。无论你是下载升级,还是阅读 v25.7.0.md 原文追踪细节,都可以借助本文的模块化解读快速定位到自己关心的变更点。
【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考