Node.js 26.4.0 (Current)
TL;DR · AI 摘要
Node.js 26.4.0 版本更新包含多个 SEMVER-MINOR 变更,涉及文件系统、HTTP、TLS 等模块的改进。
核心要点
- Node.js 26.4.0 引入了对 `readFile()` 缓冲区的支持,由 Matteo Collina 提交。
- 新增 `TCP_KEEPINTVL` 和 `TCP_KEEPCNT` 选项,用于 `setKeepAlive`,由 Guy Bedford 提交。
- 新增 `node:vfs` 子系统,由 Matteo Collina 提交。
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Node.js 26.4.0 版本更新
- 重要变更
- blockList 稳定性状态更新
- readFile 缓冲区支持
- setKeepAlive 选项改进
- 新增功能
- node:vfs 子系统
金句 / Highlights
值得收藏与分享的关键句。
Node.js 26.4.0 引入了对 `readFile()` 缓冲区的支持,由 Matteo Collina 提交。
新增 `TCP_KEEPINTVL` 和 `TCP_KEEPCNT` 选项,用于 `setKeepAlive`,由 Guy Bedford 提交。
新增 `node:vfs` 子系统,由 Matteo Collina 提交。
标题: Node.js — Node.js 26.4.0 (Current)
URL 源: https://nodejs.org/en/blog/release/v26.4.0
Antoine du Hamel
[2026-06-24, 版本 26.4.0 (Current), @aduh95](https://nodejs.org/en/blog/release/v26.4.0#2026-06-24-version-2640-current-aduh95)
[显著变更](https://nodejs.org/en/blog/release/v26.4.0#notable-changes)
- [`cde0daabcc`] - (SEMVER-MINOR)doc: 将
blockList的稳定性状态更新为候选版本 (alphaleadership) #63050 - [`b78f5a7537`] - (SEMVER-MINOR)fs: 支持调用者提供的
readFile()缓冲区 (Matteo Collina) #63634 - [`417aacbc36`] - (SEMVER-MINOR)http: 在
closeIdleConnections中关闭预请求套接字 (semimikoh) #63470 - [`fbb108be7d`] - (SEMVER-MINOR)loader: 实现包映射 (Maël Nison) #62239
- [`45494d5a8a`] - (SEMVER-MINOR)net: 在
setKeepAlive中支持TCP_KEEPINTVL和TCP_KEEPCNT(Guy Bedford) #63825 - [`ee29465e77`] - (SEMVER-MINOR)tls: 添加证书压缩选项 (Tim Perry) #62217
- [`b17817eb2b`] - (SEMVER-MINOR)vfs: 将
node:fs/promises分发到挂载的 VFS 实例 (Matteo Collina) #63537 - [`7bc93a6ac5`] - (SEMVER-MINOR)vfs: 添加最小的
node:vfs子系统 (Matteo Collina) #63115
[提交](https://nodejs.org/en/blog/release/v26.4.0#commits)
- [`c7eb83b46a`] - benchmark: 为 child_process 异步路径添加基准测试(Yagiz Nizipli)#63929
- [`066fff17a5`] - benchmark: 在 ffi 基准测试中移除旧的别名使用(Anna Henningsen)#63666
- [`509cd1b94f`] - buffer: 优化 Buffer.prototype.copy(Robert Nagy)#63828
- [`86e651bbd0`] - buffer: 使用 simdutf 来计算两字节 utf8 的 byteLength(Mert Can Altin)#63639
- [`d3f4ed9015`] - build: 为 histogram 抑制编译器警告(Richard Lau)#63980
- [`82dd7ddbe6`] - build: 为匹配 QUIC 相关路径的 PR 添加 QUIC CI 任务(Tim Perry)#63875
- [`1124c0652d`] - build: 移除冗余的中间节点 node_aix_shared(Chengzhong Wu)#63747
- [`e510ee8087`] - build: 使用 libnode 构建 codecache 和 snapshot(Chengzhong Wu)#63626
- [`5b583dace5`] - build: 在 Linux ppc64le 上默认启用 maglev(Richard Lau)#63474
- [`a2324246b4`] - build: 移除重复的 node_use_sqlite 和 node_use_ffi 条件(Chengzhong Wu)#63629
- [`2a467a5f69`] - _Revert_ "build, doc: 使用 doc-kit 生成 node.1"(Antoine du Hamel)#64091
- [`e01dec45b8`] - build, doc: 使用 doc-kit 生成 node.1(Aviv Keller)#62044
- [`2ab9848fe4`] - child_process: 将 spawn 选项按位置传递给绑定(Yagiz Nizipli)#63930
- [`04c04c8b5c`] - child_process: 本地序列化高级 IPC 消息(Yagiz Nizipli)#63933
- [`1eef57293d`] - crypto: 支持非字节的 WebCrypto 长度和 cSHAKE(Filip Skokan)#63988
- [`788a66e147`] - crypto: 共享 WebCrypto 方法和使用帮助器(Filip Skokan)#63975
- [`f9fdce3f46`] - crypto: 在 OpenSSL >=3 上使用 EVP_MAC 实现 HMAC(Filip Skokan)#63942
- [`7e9ca87e58`] - crypto: 使 webcrypto aliasKeyFormat 具有方向性 (Filip Skokan) #63910
- [`656e57ebbf`] - crypto: 修复 Hash._transform 中未处理的错误 (Haram Jeong) #63261
- [`65536f0d98`] - crypto: 重构 keyObject.toCryptoKey() 和 SubtleCrypto.getPublicKey() (Filip Skokan) #63622
- [`978f1d2bcc`] - crypto: 处理加密上下文分配失败的情况 (Tian Teng) #63542
- [`5551e8f773`] - crypto: 去重 X509 主体匹配逻辑 (Tobias Nießen) #63644
- [`57ae87640a`] - crypto: 修复 test_node_crypto.cc 中的警告 (Maya Lekova) #63490
- [`9984b05dff`] - crypto: 在原生调用之前将 -0 强制转换为 +0 (Filip Skokan) #63556
- [`88011a3689`] - crypto,tls: 不忽略 BN_get_word 错误 (Tobias Nießen) #63895
- [`9a3393d14f`] - debugger: 延迟等待初始断点输出 (Trivikram Kamat) #63969
- [`b0bfcb9c59`] - debugger: 将探针暂停处理延迟到启动后 (Trivikram Kamat) #63608
- [`8516003953`] - debugger: 在运行和重启后等待初始化 (Trivikram Kamat) #63607
- [`4438cb5284`] - debugger: 为探针模式添加 --max-hit 选项 (Joyee Cheung) #63704
- [`238b54ed2a`] - debugger: 为探针模式添加更多日志 (Joyee Cheung) #63663
- [`bbef54b413`] - deps: libffi: 樱桃挑选 9ca53a19833d (Anthony Green) #64040
- [`9761385dbd`] - deps: 将 libffi 更新到 3.6.0 (Node.js GitHub Bot) #64040
- [`373ec2d092`] - deps: 将 acorn 更新到 8.17.0 (Node.js GitHub Bot) #63901
- [`e44b5d487e`] - (SEMVER-MINOR)deps: 更新 OpenSSL 构建配置以支持压缩 (Tim Perry) #62217
- [`3ed287a2e2`] - deps: 将 npm 升级到 11.17.0 (npm team) #63857
- [`b1b597c797`] - deps: 将 ngtcp2_fmt.c 添加到构建配置(ngtcp2.gyp)(沈鸿飞) #63821
- [`0bf8e12305`] - deps: V8: 添加 CopyArrayBufferBytes API(Robert Nagy) #63828
- [`e49d7301a5`] - deps: 将 ngtcp2 更新至 1.23.0(Node.js GitHub Bot) #63777
- [`e5c079004b`] - deps: 将 nghttp3 更新至 1.16.0(Node.js GitHub Bot) #63776
- [`d599fa2346`] - deps: 将 googletest 更新至 7140cd416cecd7462a8aae488024abeee55598e4(Node.js GitHub Bot) #63775
- [`bc09f1508c`] - deps: 将 sqlite 更新至 3.53.2(Node.js GitHub Bot) #63774
- [`60787746c4`] - deps: 将 zlib 更新至 1.3.2.1-motley-3246f1b(Node.js GitHub Bot) #63773
- [`971af104f1`] - deps: 将 amaro 更新至 1.1.10(Node.js GitHub Bot) #63670
- [`e17f665444`] - deps: 将 googletest 更新至 8736d2cd5c1dcba41170ed2fddca14021d4916c3(Node.js GitHub Bot) #63669
- [`7591949457`] - dgram: 添加同步的 Socket connectSync()(Guy Bedford) #63932
- [`d75222d7cb`] - dgram: 添加同步的 Socket.prototype.bindSync()(Guy Bedford) #63838
- [`0cf8342ae2`] - dns: 在 lookup 和 resolver 输入中将 -0 强制转换为 +0(Filip Skokan) #63556
- [`e068299320`] - doc: 将 gcc 工具链更新至
gcc-13和g++-13(Louie Llaneta) #64018 - [`65178bdcf3`] - doc: 将 aduh95 添加到上一次安全发布负责人(Antoine du Hamel) #63981
- [`83eedfe85b`] - doc: 修复 util.md 中的拼写错误(Daijiro Wachi) #63961
- [`54948c78e7`] - doc: 明确回调异常(Matteo Collina) #63939
- [`205d0a57f2`] - doc: 修复测试运行器 mock 示例中的错误(Kimaswa Emmanuel Yusufu) #63656
- [`44809b176c`] - doc: 明确 fromReadable() 的 duck-typed 合约(Trivikram Kamat) #63682
- [`9cb15fcc85`] - doc: 修复 cli.md 中的拼写错误 (Daijiro Wachi) #63883
- [`394d0bb928`] - doc: 修复 vm.md 中的拼写错误 (Daijiro Wachi) #63881
- [`59b7be8193`] - doc: 修复 packages.md 中的拼写错误 (Daijiro Wachi) #63882
- [`33c236cea9`] - doc: 修复 module、util 和 dns 中 a/an 文章的拼写错误 (Daijiro Wachi) #63766
- [`30595da67b`] - doc: 更新 npm 支持版本链接 (hojeong park) #63672
- [`5919ba7e97`] - doc: 修复 SubtleCrypto.supports 示例中 AES-OCB IV 长度 (Anshika Jain) #63717
- [`51cab5cb72`] - doc: 为来自
stream/promises的pipeline添加 webstreams 参数 (David Sanders) #63628 - [`ce85b2af88`] - doc: 修复 http2 中 "used to sent" → "used to send" 的拼写错误 (Daijiro Wachi) #63700
- [`298735e8df`] - doc: 将 Node.js 25 标记为生命周期结束 (Antoine du Hamel) #63692
- [`56948518b9`] - doc: 明确 tty 原始模式仅适用于输入处理 (Muhammad Zeeshan) #63438
- [`32ff731248`] - doc: 添加 worker_threads 的历史记录条目 (Bob Put) #63545
- [`cde0daabcc`] - (SEMVER-MINOR)doc: 将
blockList的稳定性状态更新为发布候选版本 (alphaleadership) #63050 - [`d29483fc4f`] - doc,crypto: 将 argon2 和 encap/decap 标记为稳定 (Filip Skokan) #63924
- [`6e668331d9`] - events: 通过缓存选项对象提高
addAbortListener的性能 (Raz Luvaton) #52367 - [`97aafe2519`] - ffi: 为几乎所有其他平台添加快速支持 (Paolo Insogna) #63941
- [`f52cf5eeaa`] - ffi: 为 AArch64 和 x86_64 添加实验性快速 FFI 调用 API (Paolo Insogna) #63068
- [`d9461fee05`] - ffi: 为 riscv64(及其他)修复分号问题 (Stewart X Addison) #63794
- [`4c8402e0a8`] - fs: 在 Windows 上不要将 EPERM 视为 ENOTEMPTY (Kirill Saied) #63709
- [`b78f5a7537`] - (SEMVER-MINOR)fs: 支持由调用者提供的 readFile() 缓冲区 (Matteo Collina) #63634
- [`3d0097d489`] - fs: 防止在前缀兄弟目录上触发虚假的递归监视事件 (Marco) #63095
- [`14d829cb3c`] - fs: 在递归监视扫描中忽略已删除的目录 (Trivikram Kamat) #63686
- [`ceba08a1ea`] - fs: 在模式标志和监视间隔中将 -0 强制转换为 +0 (Filip Skokan) #63556
- [`6577d3b282`] - http: 避免在空闲代理套接字上添加流监听器 (Matteo Collina) #64004
- [`417aacbc36`] - (SEMVER-MINOR)http: 在 closeIdleConnections 中关闭预请求套接字 (semimikoh) #63470
- [`b7fd13a59a`] - http2: 在会话计费中保留头部内存 (Matteo Collina) #63752
- [`e611ccd167`] - inspector: 修复 inspector.close() 的文档行为 (Chengzhong Wu) #63837
- [`a44f51eef3`] - lib: 修复缺失的 lazyDOMException 导入 (Filip Skokan) #64033
- [`27cc4ec598`] - lib: 添加 lint 规则以强制使用
kEmptyObject(Antoine du Hamel) #63790 - [`7ee31b0bf4`] - lib: 提高冻结内在对象中控制抽象的覆盖率 (Renegade334) #63698
- [`078457839a`] - lib: 向 primordials 添加 Iterator 全局对象 (Renegade334) #63698
- [`58837dc4dd`] - lib: 在类型剥离中删除源映射的死代码 (Chengzhong Wu) #63738
- [`e7513a8b9e`] - lib: 使
Navigator#language的 getter 在this无效时抛出异常 (Mohamed Sayed) #63601 - [`fbb108be7d`] - (SEMVER-MINOR)loader: 实现包映射 (Maël Nison) #62239
- [`ea0b8e1dc2`] - meta: 将 github/codeql-action 从 4.35.3 升级到 4.36.1 (dependabot[bot]) #63724
- [`ac90719532`] - meta: 将 actions/cache 从 5.0.4 升级到 5.0.5 (dependabot[bot]) #62847
- [`3ed3de3062`] - meta: 将 actions/checkout 从 6.0.2 升级到 6.0.3 (dependabot[bot]) #63726
- [`d08d57bf70`] - meta: 将 codecov/codecov-action 从 6.0.0 升级到 6.0.1 (dependabot[bot]) #63725
- [`e748d192cf`] - meta: 将 cachix/cachix-action 升级 (dependabot[bot]) #63729
- [`10554eb131`] - meta: 将 actions/stale 从 10.2.0 升级到 10.3.0 (dependabot[bot]) #63728
- [`791885f2af`] - meta: 将 step-security/harden-runner 从 2.19.0 升级到 2.19.4 (dependabot[bot]) #63727
- [`32d9a407d9`] - meta: 将 cachix/install-nix-action 从 31.10.5 升级到 31.10.6 (dependabot[bot]) #63723
- [`b97c7bed07`] - module: 启用现有机制以延迟导入静态模块 (Maya Lekova) #63712
- [`4becad2117`] - module: 使用 file: URL 作为类型剥离后的 CommonJS 的 sourceURL (Joyee Cheung) #63705
- [`c71c85b95f`] - net: 通过同步的 net.BoundSocket 实现 TCP 的早期绑定 (Guy Bedford) #63951
- [`45494d5a8a`] - (SEMVER-MINOR)net: 在 setKeepAlive 中支持 TCP_KEEPINTVL 和 TCP_KEEPCNT (Guy Bedford) #63825
- [`3988efa1f3`] - net: 在 BlockList 前缀中将 -0 强制转换为 +0 (Filip Skokan) #63556
- [`484efd1c44`] - quic: 修复 get_reader 的 bug,该 bug 在接收到 FIN 时会丢弃数据 (Tim Perry) #63946
- [`04a17fe6f0`] - quic: 将 QUIC 证书作为 JS X509Certificate 暴露,而不是原始句柄 (Tim Perry) #63191
- [`b62d5696dc`] - quic: 修复空闲连接上的 reader backpressure 死锁问题 (Tim Perry) #63950
- [`3f1c8d7453`] - quic: 修复损坏的 listEndpoints 导出,测试回调函数和 nghttp3 包含 (Tim Perry) #63874
- [`d8538b9deb`] - quic: 实现 http/3 设置/应用选项的回调函数 (Marten Richter) #63558
- [`643b19716e`] - quic: 添加 listEndpoints API (James M Snell) #63536
- [`2bce35bea4`] - sqlite: 在打开失败后不要保持数据库打开状态 (Yagiz Nizipli) #63854
- [`394af52abb`] - sqlite: 修复函数回调中使用了作用域后堆栈的问题 (ndossche) #63640
- [`10f03e5958`] - src: 在
cjs_lexer::Parse中省略无法转换的名称 (Yagiz Nizipli) #63943 - [`1723773d41`] - src: 保留全局的由插件提供的清理钩子列表 (Anna Henningsen) #63985
- [`ef12e9ea44`] - src: 保护 OpenSSL 压缩头文件的包含 (Filip Skokan) #64009
- [`48af8a6d8d`] - src: 在
cjs_lexer::Parse中处理空的MaybeLocal(Yagiz Nizipli) #63885 - [`2a672ee9e8`] - src: 为原生空立即执行的快速路径 (Gürgün Dayıoğlu) #62969
- [`db6a31d1a1`] - src: 不将弱引用的
BaseObjects 作为Realms 的子项进行跟踪 (Anna Henningsen) #63842 - [`5fb837ff46`] - src: 允许使用弱边在
MemoryTracker中跟踪子项 (Anna Henningsen) #63842 - [`6d22d373a9`] - src: 使用 C++14 的已弃用属性来标记
NODE_DEPRECATED(Anna Henningsen) #63755 - [`7ac3fe1992`] - src: 向
node::ObjectWrap添加清理钩子 (Anna Henningsen) #63642 - [`d82d369155`] - src: 修复
deflateInit2()在出现Z_VERSION_ERROR时的边界情况 (Nora Dossche) #63476 - [`03858d152b`] - src: 删除 ffi 中冗余的
handle_字段 (Anna Henningsen) #63665 - [`1682264f6b`] - src: 在
StringBytes::Encode utf8中添加 Latin1 快速路径 (Mert Can Altin) #63385 - [`cc29696acf`] - stream: 修复非对象模式下
Writable.toWeb()的desiredSize(Matteo Collina) #62986 - [`d9967a25b2`] - stream: 处理
push写入器失败原因中的假值 (Trivikram Kamat) #63569 - [`b53f8f75c9`] - stream: 减少 WHATWG 流程中热点路径的内存分配 (Matteo Collina) #63876
- [`315ca426d8`] - stream: 在缓冲数据后处理 setEncoding(Matteo Collina)#63973
- [`06413cd6bd`] - stream: 修复 Utf8Stream 在多字节数据完全写入后出现的停滞问题(Daijiro Wachi)#63964
- [`a9f9a3dafa`] - stream: 保持重叠的广播读取挂起(Trivikram Kamat)#63500
- [`009cca11bd`] - stream: 优化 stream/iter 的 backpressure(James M Snell)#63697
- [`3f81dcfc99`] - stream: 仅将预期数量的参数传递给回调函数(Antoine du Hamel)#63909
- [`9a83b5d1fe`] - stream: 修复 Utf8Stream 缓冲模式下第一个块丢失的问题(Daijiro Wachi)#63833
- [`0bdf5adea9`] - stream: 在 pipeTo 中移除 transform-writer 的处理(Trivikram Kamat)#63684
- [`10272a94b6`] - stream: 在 stream reader 中检查 done 之前处理 backpressure(Daijiro Wachi)#63699
- [`792c410631`] - stream: 修复 pipeToSync 的字节计数(Trivikram Kamat)#63564
- [`3cfafbc54b`] - stream: 在中止时拒绝 pull() 读取(Trivikram Kamat)#63498
- [`640a8cede5`] - stream: 优化无状态转换 flush 的快速路径(Trivikram Kamat)#63605
- [`ece4477872`] - stream: 优化 pipeTo 的 promise 处理(Matteo Collina)#63572
- [`2cb84c2daf`] - stream: 在 pipeTo 中处理同步 writev 完成(Trivikram Kamat)#63561
- [`7d9fdda5fa`] - stream: 在返回时解决挂起的广播读取(Trivikram Kamat)#63603
- [`e2aea3aac7`] - test: 容忍重复的 watch change 事件(Trivikram Kamat)#63937
- [`ea6300593a`] - test: 将 test-debugger-run-after-quit-restart 标记为 macOS 上的不稳定测试(Matteo Collina)#64006
- [`be1b204fa4`] - test: 更新 WPT 中 url 的引用为 d4598eba09(Node.js GitHub Bot)#63899
- [`b3d0d05b05`] - test: 将 WebCryptoAPI 的 WPT 更新至 03a1476844 (Node.js GitHub Bot) #63900
- [`046af2609f`] - test: 将 urlpattern 的 WPT 更新至 23aac92784 (Node.js GitHub Bot) #63898
- [`562b831a98`] - test: 为 utils 中的 3 个方法添加测试 (Daijiro Wachi) #63765
- [`28e3629dd3`] - test: 在 Linux ARM 调试环境下标记 SEA 测试为不稳定 (Trivikram Kamat) #63743
- [`243aa846de`] - test: 验证调度器方法中的 ERR_INVALID_THIS (Daijiro Wachi) #63764
- [`6bd07df2bc`] - test: 为 SEA 之外的代码添加覆盖率测试 (Daijiro Wachi) #63744
- [`bd67c9d11b`] - test: 将 urlpattern 的 WPT 更新至 2f28df545c (Node.js GitHub Bot) #63771
- [`e40bfe7081`] - test: 使 Brotli 16GB 测试等待回压 (Trivikram Kamat) #63389
- [`444c03fd3b`] - test: 为在 worker 中使用
ObjectWrap添加回归测试 (Mohamed Akram) #63642 - [`771230df78`] - test: 在 async-hooks 测试中接受 SIGILL 中断 (Trivikram Kamat) #63687
- [`0b3cd8e5e6`] - test: 为 pathToFileURL 添加更多测试用例 (Rafael Gonzaga) #63293
- [`0cbc77c60e`] - test: 将 test426-fixtures 更新至 2965987bf4c96afa400c9356c8e620cb340aaee (Node.js GitHub Bot) #63668
- [`f53dee5fe4`] - test: 将 WebCryptoAPI 的 WPT 更新至 0c413fb56b (Node.js GitHub Bot) #63647
- [`3048f8dc1a`] - test,debugger: 为调试器探针模式中的类型剥离添加测试 (Joyee Cheung) #63748
- [`9485caa97e`] - test_runner: 删除未使用的 shuffleArrayWithSeed (Daijiro Wachi) #63847
- [`34433a4a87`] - test_runner: 修复隔离模式为 none 时的 watch cwd (Trivikram Kamat) #63690
- [`2e7da29b7c`] - test_runner: 避免为每个文件重新编译覆盖率 glob (sangwook) #63675
- [`205295a31e`] - test_runner: 按 URL 缓存
shouldSkipFileCoverage的结果 (sangwook) #63675 - [`ee29465e77`] - (SEMVER-MINOR)tls: 添加证书压缩选项 (Tim Perry) #62217
- [`57d060ed2b`] - tls: 通过错误处理程序路由事件监听器异常 (Antoine du Hamel) #63822
- [`d2dc6f8506`] - tools: 在 /tools/doc 中将 piscina 从 5.1.4 升级到 5.2.0 (dependabot[bot]) #64002
- [`b0c418f605`] - tools: 将 sccache 更新到 v0.16.0 (Michaël Zasso) #63078
- [`2af8433bef`] - tools: 在 /tools/lint-md 中将 js-yaml 从 4.1.1 升级到 4.2.0 (dependabot[bot]) #63948
- [`8ba5b8574b`] - tools: 在 /tools/eslint 中将 js-yaml 从 4.1.1 升级到 4.2.0 (dependabot[bot]) #63947
- [`325087be5b`] - tools: 强制迭代器结果属性顺序 (Trivikram Kamat) #63526
- [`314f417db7`] - tools: 更新 llhttp 更新脚本 (Antoine du Hamel) #63819
- [`c6e4f5a4fe`] - tools: 避免 test/fixtures/wpt/README.md 冲突 (Filip Skokan) #63938
- [`363912acc3`] - tools: 使 GHA 中的 Bash 片段与
lint-sh的约定一致 (Antoine du Hamel) #63829 - [`cfd16e973c`] - tools: 在 doc 组的 /tools/doc 中升级 @node-core/doc-kit (dependabot[bot]) #63760
- [`1566872706`] - tools: 在 /tools/eslint 中通过 7 次更新升级 eslint 组 (dependabot[bot]) #63730
- [`08437a3a5b`] - tools: 修复 zlib 更新脚本 (Antoine du Hamel) #63707
- [`e883366172`] - url: 修复 URLSearchParams(null) 以符合规范,返回 null= (Marco) #63782
- [`60e83d9bfd`] - util: 修复科学记数法格式 (Daijiro Wachi) #63823
- [`5f7f60ac36`] - util: 修复启用 numericSeparator 时 -0 的格式 (Daijiro Wachi) #63815
- [`af1a11e0dd`] - util: 从 styleText 慢路径中移除样式缓存 (Guilherme Araújo) #63706
- [`b17817eb2b`] - (SEMVER-MINOR)vfs: 将 fs/promises 分发到已挂载的 VFS 实例 (Matteo Collina) #63537
- [`7bc93a6ac5`] - (SEMVER-MINOR)vfs: 添加最小的 node:vfs 子系统 (Matteo Collina) #63115
- [`584e7527c4`] - vm: 修复代理沙箱中的属性查询 (Brian Meek) #63742
- [`a926e72eaf`] - watch: 打印触发重启的更改文件的名称 (Marco) #63781
- [`32a2621ca4`] - watch: 关闭时取消待处理的重启 (Trivikram Kamat) #63383
- [`692215d1b1`] - zlib: 将 -0 强制转换为 +0 作为 crc32 种子 (Filip Skokan) #63556
Windows 64 位安装程序: https://nodejs.org/dist/v26.4.0/node-v26.4.0-x64.msi
Windows ARM 64 位安装程序: https://nodejs.org/dist/v26.4.0/node-v26.4.0-arm64.msi
Windows 64 位二进制文件: https://nodejs.org/dist/v26.4.0/win-x64/node.exe
Windows ARM 64 位二进制文件: https://nodejs.org/dist/v26.4.0/win-arm64/node.exe
macOS 64 位安装程序: https://nodejs.org/dist/v26.4.0/node-v26.4.0.pkg
macOS Apple Silicon 64 位二进制文件: https://nodejs.org/dist/v26.4.0/node-v26.4.0-darwin-arm64.tar.gz
macOS Intel 64 位二进制文件: https://nodejs.org/dist/v26.4.0/node-v26.4.0-darwin-x64.tar.gz
Linux 64 位二进制文件: https://nodejs.org/dist/v26.4.0/node-v26.4.0-linux-x64.tar.xz
Linux PPC LE 64 位二进制文件: https://nodejs.org/dist/v26.4.0/node-v26.4.0-linux-ppc64le.tar.xz
Linux s390x 64 位二进制文件: https://nodejs.org/dist/v26.4.0/node-v26.4.0-linux-s390x.tar.xz
AIX 64 位二进制文件: https://nodejs.org/dist/v26.4.0/node-v26.4.0-aix-ppc64.tar.gz
ARMv8 64 位二进制文件: https://nodejs.org/dist/v26.4.0/node-v26.4.0-linux-arm64.tar.xz
源代码: https://nodejs.org/dist/v26.4.0/node-v26.4.0.tar.gz
其他发布文件: https://nodejs.org/dist/v26.4.0/
文档: https://nodejs.org/docs/v26.4.0/api/
[SHASUMS](https://nodejs.org/en/blog/release/v26.4.0#shasums)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
60269b7e2f214eb546bddc976d40dba628f63ee440488ebc2594abfc06873258 node-v26.4.0-aix-ppc64.tar.gz 76d6c1b2fee84474374e445606b90cf6f1d8ffa22033f438c5008a21dd54fb35 node-v26.4.0-arm64.msi 4f4fbcacf6b1ff1a95deedba7bd7b2d79efecaa53a8ecb0530546dc9063fefbc node-v26.4.0-darwin-arm64.tar.gz bef4c7e75087c029835f519a7ba640eba52fa617fadb3a9049828ff3b45b57dd node-v26.4.0-darwin-arm64.tar.xz eb3bdd8dec3ff2558ee10e284da7d2a3865af0cbda21f06d397b0265837c641e node-v26.4.0-darwin-x64.tar.gz 06607eef24180c3d1299455efe315bfef67b68b271dc307841cb3fb3af39e211 node-v26.4.0-darwin-x64.tar.xz 2caa0b6addb7e63c38ccd2b1d78d78ba4418b35b5daed0bc9daea23e8ab769c5 node-v26.4.0-headers.tar.gz 6eb5714cf9e917c5627f1f4df8ba126080333ddd51bca64bc0d424f82162c434 node-v26.4.0-headers.tar.xz 773d9ec67266838270ddc105c2548ae8aaff28bc8fe6f34c55d1094043c4165e node-v26.4.0-linux-arm64.tar.gz f6d8eedc52170667d45730ac2f413c4aa1e7cd2165c9cac5746ef3cb0f4ec45a node-v26.4.0-linux-arm64.tar.xz d550366058fb29aade118fe0552f2fadc694da9ea63aadf4a73d6a523398e139 node-v26.4.0-linux-ppc64le.tar.gz 2feb9010b184e13c17150a81c8e12801a8f166513cccea0a5a1ea9d3e521ff20 node-v26.4.0-linux-ppc64le.tar.xz 70ebd033c50f9083be53d8a0583c215049c63212087835da719c3c06cce4117b node-v26.4.0-linux-s390x.tar.gz 55c161e3ff9bec97fe70e6dce64f5e844457de151f6fe602461c79038ec524b1 node-v26.4.0-linux-s390x.tar.xz f221dab30d0e9d544332f06fbee2c62186c97d864d5cac8482dba34f1e38b8dc node-v26.4.0-linux-x64.tar.gz 5c4286dcd5bbd5acb1ccc7eb0e088bd5eb1e3affad671ee9364004f8f6a4a431 node-v26.4.0-linux-x64.tar.xz e810f99f1ed6e4ae719e548b9574bede57a98aadb747d1ad8364a2adcfa5dae9 node-v26.4.0-win-arm64.7z 394cb72e664faaa518ca1877bcc20bb03a3e2f51ed1f6cfce53e1a306e8c97f6 node-v26.4.0-win-arm64.zip 5adb7d769da5384d3ef7c41599b921f2b6e18cbadc487b27b96b35ef018e1497 node-v26.4.0-win-x64.7z 5f87d038c6ec442aa46b9126f8ca170acbd2f3b9b9152ca798cf54596a31e214 node-v26.4.0-win-x64.zip c9df873c4cf0463c63b79774d96b2e126ca6ba9d9f86529846864d41775101d6 node-v26.4.0-x64.msi e9cbc19b609a6a919169c8565355c51899ecc82ce0197