新闻详情

新闻详情

首页 / 资讯中心 / 详情

Node.js v24.3.0 发布详解:type stripping 转正、test_runner 对象属性 mock 与 fileURLToPathBuffer 新 API

发布时间:2026/9/19 0:25:12来源:尧图网络
Node.js v24.3.0 发布详解:type stripping 转正、test_runner 对象属性 mock 与 fileURLToPathBuffer 新 API
Node.js v24.3.0 发布详解type stripping 转正、test_runner 对象属性 mock 与 fileURLToPathBuffer 新 API【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.orgNode.js v24.3.0Current 版本线于 2025-06-24 正式发布。本篇文章以官方发布公告apps/site/pages/en/blog/release/v24.3.0.md为骨架逐条拆解本次版本的 Notable Changes、核心依赖升级与修复细节并结合本仓库nodejs.org 官网源码说明发布公告是如何被自动生成、以及下载页面如何组织各平台安装包帮助你快速判断该版本是否值得升级、以及如何正确安装与校验。版本背景Current 版本线的定位v24.3.0 属于 Node.js 24 主版本的第三个 minor 版本发布于 2025-06-24发布人为 Rafael GonzagaRafaelGSS。在 Node.js 的发布策略中24.x 线当前处于Current当前版本状态尚未进入 LTS。在本仓库的 releaseData.mjs 中getNodeReleaseStatus函数依据“是否已过 EOL 日期、最新版本是否处于 LTS 阶段”两个条件将每个主版本的 status 判定为EOL/LTS/Current三者之一const getNodeReleaseStatus (latest, eol) { const now new Date(); if (eol now new Date(eol)) { return EOL; } if (latest.lts.isLts) { return LTS; } return Current; };也就是说v24.3.0 的 (Current) 标签并非人工书写而是由官网数据层根据 release schedule 数据自动推导并在下载页面上呈现的。生产环境如需长期稳定支持应优先关注 LTS 版本线。Notable Changes本次版本四大亮点v24.3.0 的 Notable Changes 共包含 8 条变更其中 4 条带有(SEMVER-MINOR)标记即向后兼容的新功能是本次升级的核心看点。1. moduletype stripping 移除实验警告SEMVER-MINOR提交9b28f40834PR #58643作者 Marco Ippolito影响模块module从 Node.js 22.6.0 引入的类型剥离type stripping能力在本版本中移除了实验性警告。这意味着直接运行.ts文件类型标注被安全剥离无需编译已从实验阶段走向稳定可用开发者可以更干净地在 Node.js 中直接执行 TypeScript 文件。围绕 TypeScript 支持本次还包含若干配套修复ff8a3691c4PR #58661修复 TypeScript 下的import.meta.main45f7d160edPR #58657重构 CommonJS 的 TypeScript 加载器refactor commonjs typescript loader7bb1246c8fPR #58732为 hooks 中的 TS 支持补充 history 条目b6760b3379PR #57419将ModuleLoader.load的默认路径 syncify属于 ESM 加载器内部一致性调整。同时依赖侧同步升级了类型剥离所用到的 amaro从 1.0.0 升至 1.1.0见提交fa6854f083与450f4815b3说明本次对 TS 支持的处理是成体系的。2. fsfs-events 在 AsyncIterator 下正确处理 burstSEMVER-MINOR提交839964ece8PR #58490作者 Philipp Dunkel影响模块fsfs.Dir/ 目录遍历等基于AsyncIterator的场景在事件突发burst时可能出现错误处理本次修复允许 fs-events 与 AsyncIterator 组合时正确消化突发事件。同模块的配套清理还包括96c78d726cPR #58692使Dirdisposers 幂等重复调用不会重复清理62b5879d88PR #58728避免在运行时重复计算时间系数常量af18c0e81aPR #58418移除 glob 中的 IIFEfb4378b72ePR #56918将UV_ENOSPC加入直接透传 err 的列表磁盘写满场景的错误信息将更准确。3. test_runner支持对象属性 mockSEMVER-MINOR提交713fbad7b6PR #58438作者 Idan Goshen影响模块test_runnernode:test 测试运行器新增对象属性 mocking能力允许对对象的属性进行 mock进一步增强了内置测试框架的能力减少了项目对第三方 mock 库的依赖。test_runner 模块在本次发布中还经历了一次“反转再确认”6ef7329c8cPR #58282Revert「自动等待 subtests 完成」dce1995c55、8b0c5edbb6PR #58282Revert「移除 t.test() / test() 返回的 promises」a1529d5d99PR #58800随后又重新实现「自动等待 subtests 完成」c9e7b5e43aPR #58716test_runner 内部改用Atomicsprimordials。这些来回的 revert 说明 Node.js 团队在调整 test_runner 的异步语义时非常谨慎最终保留并重新实现了 subtest 自动等待机制。配套 typings 变更17df800b90PR #58577为Atomicsprimordials 补充了类型声明。4. url新增 fileURLToPathBuffer APISEMVER-MINOR提交ef0230abafPR #58700作者 James M Snell影响模块urlurl模块新增fileURLToPathBufferAPI。与现有的fileURLToPath返回字符串路径不同该 API 直接返回Buffer形式的文件路径在高频路径转换场景下可减少字符串与 Buffer 之间的转换开销适合与fs系列 API 直接衔接使用。Commits 全量速览按模块分类除上述 Notable Changes 外v24.3.0 还包含大量常规提交按模块归类如下均为发布公告原文收录内容。依赖升级deps依赖目标版本PRnghttp21.66.0#58786acorn8.15.0#58711amaro1.1.0#58754npm11.4.2#58696sqlite3.50.1#58630simdjson3.13.0#58629zlib1.3.1-470d3a2#58628V8cherry-picke3df60f3f5ab#58691其中 npm 升级到11.4.2对日常使用影响最直接sqlitenode:sqlite内置模块所依赖升至 3.50.1V8 的 cherry-pick 配合lib,src中的 DOMException 序列化/反序列化支持6390f70da2、081c70878fPR #58649一起合入。文档doc与元数据meta841609ac1cPR #58714新增 collaborator islandryuShima Ryuhei97fbfd82afPR #58783修复 stability 1.x 链接排除小数位数字e2e88d4971PR #58753修正 http2 中错误的 RFC 编号d59680348ePR #58604补充 package.jsonexports目标的路径规则与校验文档4c2c100f63PR #58790为 inspector 增加 nodejs/inspector codeowner。HTTP / HTTP2c9dc0a8903PR #58178修复 keep-alive 在请求后空行之后不超时的问题作者正是新 collaborator Shima Ryuheib11da1115ePR #58669修复 DEP0194 提示信息b1f60d2f18PR #58602http2 新增 diagnostics channelhttp2.server.stream.close便于观测流关闭事件。ESM / module / REPLa3c7a63c73PR #58598允许 ESM loader 的 CJS 处理中require()出现循环依赖d0e42ffa58PR #58653REPL tab 补全中避免使用已废弃的require.extensions82b18ba890PR #58709修复 REPL tab 补全在 computed string 属性上失效的问题。内部实现src / lib / utila0b1378a20PR #58758spawn 的权限检查中传递 resource配合 permission 机制dfb0144490PR #58677增强未知命令行选项的错误提示74983832f9PR #58765validateInternalField()改为抛出ERR_INVALID_THIS6f7b89516fPR #58196util.inspect在 Error 的 stack 自引用时不再崩溃。测试与工具链9df1cfe402PR #58752nodedownload 工具兼容 Python 3.14b22e970774PR #58623工具链切换到stylistic/eslint-plugin大量 test 提交聚焦于REPL 自定义 eval 与 save-load 测试704b1fa075、d9c2b7054b、大 Buffer 分配测试的 deflake3faa4e8b56、d94b184700、6e0ee39b6d、WPT 同步urlpattern / dom-abort / es-exceptions见94e53d4f6c、fa089d610f、76e3c8aaf2等。安装 v24.3.0各平台安装包与二进制发布公告末尾列出了官方分发的全部安装包与二进制涵盖 Windows、macOS、Linux、AIX 与源码包平台文件说明Windows x64node-v24.3.0-x64.msi64 位安装器Windows ARM64node-v24.3.0-arm64.msiARM 64 位安装器Windows x64 / ARM64win-x64/node.exe、win-arm64/node.exe免安装二进制macOSnode-v24.3.0.pkg安装器macOS Apple Siliconnode-v24.3.0-darwin-arm64.tar.gz二进制包macOS Intelnode-v24.3.0-darwin-x64.tar.gz二进制包Linux x64node-v24.3.0-linux-x64.tar.xz二进制包Linux PPC LEnode-v24.3.0-linux-ppc64le.tar.xz二进制包Linux s390xnode-v24.3.0-linux-s390x.tar.xz二进制包AIXnode-v24.3.0-aix-ppc64.tar.gz二进制包ARMv8 64-bitnode-v24.3.0-linux-arm64.tar.xz二进制包Source Codenode-v24.3.0.tar.gz源码包所有文件统一位于https://nodejs.org/dist/v24.3.0/API 文档位于https://nodejs.org/docs/v24.3.0/api/。值得说明的是这份下载清单在官网代码中并非手工维护而是由 downloadsTable.mjs 根据版本号动态筛选生成。该表内置了 16 个下载项模板并按语义化版本规则裁剪不适用的平台例如版本 23.0.0时移除 Windows 32 位安装器与二进制downloadsTable.mjs#L102-L108版本 24.0.0时移除 ARMv7 32 位二进制downloadsTable.mjs#L110-L112。这正是 v24.3.0 公告中不再出现 32 位 Windows / ARMv7 条目的原因。下载链接通过%version%占位符替换生成const resolveUrl (item, version) { const url item.templateUrl.replace(/%version%/g, version); return Object.assign({ url }, item); };发布公告正文中每行末尾的\连字符、*Coming soon*兜底逻辑则来自 index.mjs 的urlOrComingSoon脚本会先对每个下载地址发起 HEAD 请求只有确认可达才写入链接否则标记为 Coming soon。使用版本管理器安装推荐如果希望在一台机器上自由切换 Node.js 版本可以使用 nvm。官网为各包管理器提供了可直接使用的安装脚本片段见 snippets/en/download/nvm.bash# Download and install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash # in lieu of restarting the shell \. $HOME/.nvm/nvm.sh # Download and install Node.js: nvm install 24nvm install 24会安装 24.x 线的最新版本。此外仓库的 snippets/en/download 目录还提供了 brewmacOS、chocoWindows、fnm、n、asdf、docker 以及 npm/yarn/pnpm/corepack 等多种安装方式的脚本下载页面 会通过Release.InstallationMethodDropdown /与Release.PackageManagerDropdown /让访问者按需切换。通过官网下载页面获取nodejs.org 下载页 由layout: download驱动页面中的版本下拉框由Release.VersionDropdown /渲染当前最新版本数据由 releaseVersions.mjs 在构建期根据各 major 的 releases 记录汇总生成v${release.semver.raw}。对于 v24.3.0 这样的具体版本你还可以在页面上直接点击Release.BlogPostLink组件实现见 BlogPostLink.tsx跳转到本文对应的/blog/release/v24.3.0发布博客或通过Release.ChangelogLink查看 changelog。安全校验使用 PGP 签名的 SHASUMS 验证下载发布公告末尾附带了完整的SHASUMS256.txt.asc内容PGP 签名消息覆盖了所有分发文件的 SHA-256 哈希例如8dba56a4ecdfac96cb659d153fce30e7718829cb414d4d853cea9f00a6223362 node-v24.3.0-aix-ppc64.tar.gz a962afadaa8b94bae8bff87ddd6c11f7aae621032424ef05c0a4fe2537fa4de0 node-v24.3.0-linux-x64.tar.xz f8cc1dcde9b76fa380765204fefbb98e51123e52c919ba4adcf4ccd235bbf70b node-v24.3.0.tar.gz这些哈希来自 fetchShasums 实时抓取的https://nodejs.org/dist/v24.3.0/SHASUMS256.txt.asc并被直接嵌入发布公告。校验步骤为下载目标二进制与对应的SHASUMS256.txt.asc用gpg验证签名确认哈希文件确实由 Node.js 发布团队签名比对下载文件的 SHA-256 与公告中的哈希值是否一致。官网下载页也明确引导用户「Learn how to verify signed SHASUMS」见 apps/site/pages/en/download/index.mdx对于生产环境部署这一步不应省略。发布公告是如何生成的仓库源码揭秘本文档以及本仓库pages/en/blog/release/下全部 804 篇发布博客并非纯手工撰写而是由 scripts/release-post/index.mjs 自动拼装生成。其执行流程为指定版本号缺省时抓取 dist/index.json 的最新版本 → 抓取 nodejs/node 仓库 CHANGELOG_V24.md 中对应版本小节 → 从发布标题正则解析 author 与版本策略Current/LTS → 抓取 SHASUMS256.txt.asc → 逐个 HEAD 探测下载链接可达性 → 用 Handlebars 渲染 template.hbs → prettier 格式化 → 写入 v24.3.0.md其中版本策略的解析依赖正则/^## ?\d{4}-\d{2}-\d{2}, Version [^(].*\(([^)])\)/index.mjs这解释了为何公告标题中会出现(Current)后缀——它源自 changelog 原始标题与官网数据层 releaseData.mjs 的 status 判定是两套相互独立的机制。template.hbs 定义了最终博客的 frontmatter 与正文骨架date、category、title、layout、author随后依次输出 changelog 正文、下载清单、Other release files/Documentation链接以及 SHASUMS 代码块——与 v24.3.0.md 的实际结构完全一致。升级建议与小结综合来看v24.3.0 是一次典型的 Current 线 minor 版本风险等级较低但对以下三类开发者尤其值得关注直接运行 TypeScript 的团队type stripping 的实验警告被移除配合 amaro 1.1.0 与 CJS/ESM 加载器重构.ts直接执行的体验更成熟使用 node:test 的团队新增对象属性 mock并确认了 subtest 自动等待语义内置测试能力进一步增强高频处理 file:// URL 路径的团队新的fileURLToPathBuffer返回 Buffer 路径可减少转换开销。npm 随版本升级至 11.4.2、sqlite 升至 3.50.1日常使用面也会受到影响。由于 24.x 仍处于 Current 阶段生产环境如需 LTS 保障请结合官方发布日程评估安装时务必使用 PGP 签名 SHASUMS 校验下载完整性。【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Linux Suspend/Resume 内核级深度解析:从用户态到ACPI固件的全流程拆解 2026/9/19 1:13:18

Linux Suspend/Resume 内核级深度解析:从用户态到ACPI固件的全流程拆解

1. 这不是“按个键就休眠”的黑箱——它是一场横跨用户空间与内核空间的精密协同作战Linux 的 Suspend/Resume,远不止是笔记本合盖后屏幕一黑、再开盖就恢复工作的简单动作。它是一套覆盖整个软件栈的系统级状态迁移机制,涉及从桌面环境(如 G…

阅读更多 →
Fluent UDF入门:编译型与解释型、DEFINE_PROFILE与动网格 2026/9/19 1:13:18

Fluent UDF入门:编译型与解释型、DEFINE_PROFILE与动网格

简介:这份《UDF官方教程之1.Introduction to UDF》是ANSYS Fluent官方培训体系中的入门讲义,面向需要突破标准界面限制的流体仿真工程师、高校研究生及CFD进阶学习者,帮助其理解用户自定义函数的定位与适用边界。内容围绕UDF是什么、为何要创…

阅读更多 →
红外通信F题实战:链路预算、收发电路与抗干扰调参全解析 2026/9/19 1:13:18

红外通信F题实战:链路预算、收发电路与抗干扰调参全解析

简介:2013年全国大学生电子设计竞赛红外光通信装置(F题)的完整设计文档,系统阐述了信号产生、红外光发送与接收三大模块的实现方案,面向电子竞赛参赛者、电子设计初学者及红外通信爱好者,适用于课程设计与备…

阅读更多 →
计数器与累加器:从RTL设计到FPGA板级调试的完整指南 2026/9/19 1:13:18

计数器与累加器:从RTL设计到FPGA板级调试的完整指南

简介:针对数字系统设计课程中的计数器和累加器实验,这份PDF实验报告系统记录了从设计到验证的完整过程。报告面向数字电路与FPGA设计的初学者,以实验五和实验六两条主线展开:一方面用图形法和Verilog HDL语言设计十进制计数器&…

阅读更多 →
电镀预处理龙门线走法表:PLC数据寄存器与状态机实现 2026/9/19 1:13:18

电镀预处理龙门线走法表:PLC数据寄存器与状态机实现

简介:这份PDF面向电镀生产线自动化控制、PLC编程及工业设备改造领域的工程技术人员与相关专业师生,围绕预处理龙门线走法编程自由度不足的问题,给出利用PLC数据寄存器结合步进程序的实践思路。资料为1个PDF文件,压缩包约208KB&…

阅读更多 →
Android UseCase设计指南:解耦业务逻辑与平台实现 2026/9/19 1:10:18

Android UseCase设计指南:解耦业务逻辑与平台实现

1. UseCase不是“用例”,而是Android架构里的责任守门人很多人第一次看到UseCase这个词,下意识就联想到UML里的“用例图”——画几个小人、几个椭圆,标上“登录”“支付”“上传头像”。但Android开发里提到的UseCase,和那个教科书…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞