 版本全解析:新增 API 亮点与发布内容详解)
Node.js 25.6.0 (Current) 版本全解析新增 API 亮点与发布内容详解【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org本文基于 Node.js 官方网站nodejs.org发布博客中的 v25.6.0 版本发布说明 撰写系统梳理该版本的 Notable Changes值得关注的变化、核心提交Commits、各平台安装包与 PGP 签名校验值SHASUMS。Node.js 25 系列属于 Current非 LTS版本线每个偶数月都会滚动发布新的 minor 版本掌握其新 API 与依赖升级动向有助于你在评估是否升级运行时、追踪生态兼容性时做出准确判断。读完本文你将了解 v25.6.0 引入的 6 项主要新特性、关键内部模块的性能优化、依赖更新清单以及如何在 nodejs.org 上核对发布文件与校验和。版本概要发布时间、归属与发布人v25.6.0 发布于2026-02-03版本线为Current当前版本由 Node.js 核心协作成员 Antoine du HamelGitHub 账号aduh95主持发布。该发布对应的官方发布说明存放于本仓库的 apps/site/pages/en/blog/release/v25.6.0.md是 nodejs.org 网站 Blog 板块release分类下的一篇标准版本发布博文。在该仓库的博客体系中此类发布说明以 frontmatter 声明元数据日期、分类、标题、布局、作者并由博客路由统一渲染。从 BlogPostCard 组件 可以看到category: release会被映射为对应的预览类型与 announcements、vulnerability 并列说明版本发布说明是官网博客的核心内容类别之一blog 分类页路由 则负责按路径动态读取 Markdown 内容并渲染为博客页面。核心新增特性Notable Changesv25.6.0 共包含6 项被标记为值得关注的变化其中 5 项为语义化版本中的 minor 级别新功能SEMVER-MINOR1 项为性能改进。逐一解读如下。1. async_hookscreateHook()新增trackPromises选项async_hooks模块的createHook()新增trackPromises选项由 Joyee Cheung 提交PR #61415。该选项允许调用方控制钩子是否跟踪 Promise 生命周期从而更精确地观测异步资源的创建与销毁减少不必要的 Promise 追踪开销。典型用法示意import { createHook } from node:async_hooks; const hook createHook({ init(asyncId, type, triggerAsyncId, resource) { // 异步资源初始化回调 }, // ... }, { trackPromises: false }); // 按需关闭 Promise 追踪 hook.enable();2. netSocket新增setTOS与getTOSnode:net模块的Socket类新增setTOS()与getTOS()两个方法由 Amol Yadav 提交PR #61503用于读写 socket 的 TOSType of Service服务类型字段。TOS 用于在网络层标记数据报的服务等级在需要实现 QoS服务质量或网络流量优先级控制的场景中非常实用例如区分实时音视频流量与普通数据流量。import net from node:net; const socket net.connect(80, example.com); // 读取当前 TOS 值 const tos socket.getTOS(); // 设置 TOS取值通常为 0x00 - 0xFF socket.setTOS(0x10);3. embedder API新增 ESM 初始支持src层为embedder API嵌入器 API增加了对 ES Module 的初始支持由 Joyee Cheung 提交PR #61548。这意味着将 Node.js 作为嵌入式运行时嵌入到其他应用如桌面应用、游戏引擎时可以更顺畅地加载与执行 ESM 模块为嵌入式场景下的现代 JavaScript 模块体系铺路。4. streamnode:stream/consumers新增bytes()方法node:stream/consumers新增bytes()方法由 wantaek 提交PR #60426用于将 Readable Stream 完整消费并返回一个Uint8Array字节数组。这填补了此前consumers只有text()、json()、buffer()、arrayBuffer()、blob()等消费方法的空白为需要直接以字节数组形式处理流数据的场景提供了更自然、更节省内存的选择。import { Readable } from node:stream; import { bytes } from node:stream/consumers; const readable Readable.from([Buffer.from(hello), Buffer.from( world)]); const data await bytes(readable); // Uint8Array5. test_runnerrun()函数新增env选项内置测试运行器node:test的run()函数新增env选项由 Ethan Arrowood 提交PR #61367。此前通过run()以子进程方式执行测试时环境变量继承自父进程现在可以直接为每个测试子进程显式指定环境变量方便在不同测试间隔离环境配置例如切换不同 API Key、模拟不同部署环境。import { run } from node:test; import { tap } from node:test/reporters; run({ files: [./test/foo.test.js], env: { NODE_ENV: test, API_BASE_URL: https://staging.example.com }, }).compose(tap).pipe(process.stdout);6. urlAda 升级至 v3.4.2支持 Unicode 17url模块底层依赖的Ada URL 解析器升级至 v3.4.2同时新增对Unicode 17标准的支持由 Yagiz Nizipli 提交PR #61593。这意味着 URL 解析在遵循最新 Unicode 规范如国际化域名 IDN 相关字符的处理方面更进一步URL 解析的规范符合度与健壮性得到持续加强。补充说明同版本还包含一项未标记 SEMVER-MINOR 的性能改进——TextEncoder.encode()使用simdutf库提升编码性能PR #61496对高频文本编码场景如 HTTP 响应体序列化、日志处理有直接收益。主要提交Commits解析v25.6.0 共包含 55 条提交记录除上述新特性外其余提交主要分布在以下模块与方向。下表按模块归类了值得关注的关键提交提交哈希与 PR 编号均来自原发布说明模块提交内容摘要PRassert修复 loosedeepEqual对含undefined与null数组的比较失败问题#61587buffer禁止对池化 buffer 执行 ArrayBuffer transfer#61372build新增--shared-liefconfigure 选项#61536build启用-DV8_ENABLE_CHECKS编译标志#61327depsundici 升级至 7.19.2#61566depsOpenSSL 源码升级至 3.5.5#61547depscorepack 升级至 0.34.6#61510depsnghttp3 升级至 1.15.0#61512depsngtcp2 升级至 1.20.0#61511depsV8 cherry-pick c5ff7c4d6cde#61372lib流式 TextDecoder 走 utf8 快速路径#61549module未启用 tracing 时不再包装module._load#61479process--print输出不再截断长字符串#61497seafs 操作失败时打印错误信息#61581sqlite修复 SQLTagStore 段错误问题#60462src将帮助文本暴露到 node-config-schema.json#58680srcArrayBuffer BackingStore 分配失败时抛出 RangeError#61480test_runner修复expectFailure传递问题#61568test_runner区分 todo 与 failure 的样式#61564值得关注的细节依赖升级本版本密集升级了多个底层依赖其中 OpenSSL 3.5.5 与 undici 7.19.x 对安全与网络栈影响最大QUIC 相关依赖 ngtcp2/nghttp3 的同步升级表明 HTTP/3 与 QUIC 能力持续演进。需要说明的是tools 相关提交 还将 QUIC 依赖移到了临时 flag 之后便于按需构建。稳定性修复assert的 loosedeepEqual修复PR #61587解决了含undefined与null的数组在宽松比较时误判的问题sqlite的段错误修复则直接改善了node:sqlite模块的健壮性。文档与工具doc模块整理了Buffer.concat文档、恢复了 ChALkeR 的协作成员身份、为tls.connect补充requestOCSP选项文档tools侧更新了 gyp-next 至 0.21.1并将 LIEF 加入 license 构建器。如何理解版本线与发布状态Node.js 采用偶数大版本进入 LTS、奇数大版本为 Current 的发布策略。v25.6.0 属于25.x Current 版本线因此其发布说明中的状态为 Current 而非 LTS。在该仓库的 releaseData 生成器 中可以看到这一判定逻辑若该大版本尚未进入 EOL 且其最新版本不是 LTS则状态标记为Current这一状态会驱动官网下载页、PreviousReleasesTable 等组件展示不同的版本标签。对于要落地到生产环境的用户建议优先关注偶数版本线的 LTS 版本而 Current 版本线的新 API如本文介绍的bytes()、setTOS()/getTOS()、trackPromises等通常会在后续 LTS 版本中继承可提前评估其行为与兼容性。各平台安装包与校验SHASUMS版本发布说明的末尾列出了 v25.6.0 的全部发布产物与 PGP 签名后的 SHA-256 校验值。发布产物覆盖 Windowsx64/arm64 安装器与二进制、macOSIntel/Apple Silicon、Linuxx64/ppc64le/s390x/arm64、AIX 等平台以及源码包与 headers 包。全部发布文件目录https://nodejs.org/dist/v25.6.0/官方 API 文档https://nodejs.org/docs/v25.6.0/api/校验值文件PGP 签名https://nodejs.org/dist/v25.6.0/SHASUMS256.txt.asc使用校验值验证下载文件下载任意二进制后建议使用官方 SHASUMS 校验其完整性。以 Linux x64 二进制为例假设已下载至当前目录# 1. 计算本地文件的 SHA-256 sha256sum node-v25.6.0-linux-x64.tar.xz # 期望输出来自发布说明 # f61908298ba1c8e1802ac00283cee678e0eb4035e1c74f094b06b1620423fcf2 node-v25.6.0-linux-x64.tar.xz发布说明中的 SHASUMS 区块以 PGP 签名包裹-----BEGIN PGP SIGNED MESSAGE-----/-----END PGP SIGNATURE-----发布者使用其私钥对哈希列表签名任何人都可用发布者的公钥验签从而确认哈希列表本身未被篡改。下表摘录了常用平台的哈希值完整列表见 v25.6.0 发布说明文件SHA-256node-v25.6.0-linux-x64.tar.xzf61908298ba1c8e1802ac00283cee678e0eb4035e1c74f094b06b1620423fcf2node-v25.6.0-darwin-arm64.tar.gz5bfb537a913368152c5eba6aafe43ec834b23ee0ca4b96e5e18253937fe4103enode-v25.6.0-darwin-x64.tar.gzb8bb25a7fd2fa5c638aa0fa9722ba351b5393ac5ca00aceea6578164b88e7761node-v25.6.0-win-x64.zip133686ade5cd1e1686afcf2d688530fc35afef649ddf6a491e4705610727bd23node-v25.6.0-x64.msi9a60c1001dc34d108f9e031d8fad2125d407c9a7efdb865e3e00b7c3a34a32d3node-v25.6.0.pkg335a3556a275302fcd47a5434e7946e0d6a5eafd984f762774ab59c057c24774node-v25.6.0.tar.gz源码4f9567884d604f900c13cf83919654a55e6808538ed88f25cc9cdfc84ebb70ea各平台下载入口发布说明列出的直接下载入口包括Windows 64-bit Installerhttps://nodejs.org/dist/v25.6.0/node-v25.6.0-x64.msiWindows ARM 64-bit Installerhttps://nodejs.org/dist/v25.6.0/node-v25.6.0-arm64.msimacOS 64-bit Installerhttps://nodejs.org/dist/v25.6.0/node-v25.6.0.pkgmacOS Apple Silicon 64-bit Binaryhttps://nodejs.org/dist/v25.6.0/node-v25.6.0-darwin-arm64.tar.gzLinux 64-bit Binaryhttps://nodejs.org/dist/v25.6.0/node-v25.6.0-linux-x64.tar.xzLinux PPC LE / s390x / ARMv8 64-bit Binaryhttps://nodejs.org/dist/v25.6.0/对应文件Source Codehttps://nodejs.org/dist/v25.6.0/node-v25.6.0.tar.gz说明本仓库的 release-post 下载表脚本 维护了各版本下载项与平台可用性的过滤逻辑例如 Windows 32 位产物在 23.x 起移除、ARMv7 32 位产物在 24.x 起移除v25.6.0 发布说明中的下载列表正是由该模板生成的子集。深入阅读发布说明是如何生成的在 nodejs.org 仓库中这类版本发布说明并非完全手写而是由 apps/site/scripts/release-post/index.mjs 自动生成通过https://nodejs.org/dist/index.json或显式传入版本号确定目标版本从 Node.js 主仓库的CHANGELOG_V25.md中正则提取对应版本区块fetchChangelog解析版本头部的发布人author与版本策略Current/LTSfetchVersionPolicy拉取SHASUMS256.txt.asc校验值fetchShasums并用 HEAD 请求逐个验证各平台下载链接是否存在verifyDownloads不存在的标记为*Coming soon*使用 template.hbs 模板Handlebars拼装正文、下载链接与 SHASUMS 区块经 Prettier 格式化后写入pages/en/blog/release/vX.md。也就是说你看到的 v25.6.0.md 中Commits列表、下载链接与校验值均直接来源于 Node.js 官方 changelog 与 dist 站点数据发布者只需在提交前人工校对即可。理解了这条生成链路你就能准确判断发布说明中每条信息的权威来源也能据此自行复现任意版本的发布说明。小结Node.js v25.6.0 是一次以新 API 为主、性能与稳定性为辅的 Current 版本发布开发者侧可直接受益的新能力包括stream/consumers.bytes()、net.Socket.setTOS()/getTOS()、async_hooks的trackPromises选项、node:test的run({ env })选项以及 embedder API 的 ESM 初始支持性能侧TextEncoder通过 simdutf 提速、流式TextDecoder走 utf8 快速路径依赖侧OpenSSL 3.5.5、undici 7.19.2、Ada 3.4.2支持 Unicode 17等集中升级建议关注其对既有应用的影响发布产物的 PGP 签名 SHASUMS 可用于下载完整性验证所有信息均可从 官方发布说明 与https://nodejs.org/dist/v25.6.0/复核。如需追踪后续版本动向可持续关注本仓库 release 分类博客目录 下的发布说明更新。【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考