Node.js v22.18.0(Jod LTS)发布深度解读:Type Stripping 默认开启与核心模块新特性全览

发布时间:2026/11/12 4:30:53

Node.js v22.18.0(Jod LTS)发布深度解读:Type Stripping 默认开启与核心模块新特性全览 Node.js v22.18.0Jod LTS发布深度解读Type Stripping 默认开启与核心模块新特性全览【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org2025 年 7 月 31 日Node.js 官方发布了 22.x 版本线的 LTS 更新 v22.18.0代号 Jod由 Antoine du Hameladuh95负责发布。本文基于 nodejs.org 仓库中对应的发布博客原文全面解读本次版本的 Notable Changes重要变更、模块级修复与改进并结合该仓库的发布脚本与博客数据流水线说明这类发布文章是如何在 nodejs.org 网站仓库中自动生成的。读完本文你将掌握Type Stripping 默认启用的使用方法与关闭方式、import.meta.main与--watch-kill-signal等新 API 的语义以及如何校验官方二进制包的 SHASUMS 签名。一、版本背景一次以 SEMVER-MINOR 为主的 LTS 更新v22.18.0 属于 Node.js 22.xJodLTS 版本线发布日期为 2025-07-31发布格式为## 2025-07-31, Version 22.18.0 Jod (LTS), aduh95本次更新包含 9 项SEMVER-MINOR向后兼容的新功能变更涉及deps、esm、fs、permission、sqlite、url、watch、worker等多个模块同时伴随大量修复与工具链升级。从仓库中的发布记录可以看到这条版本的完整提交列表被整理在 v22.18.0.md 中是了解该版本全貌的一手资料。二、头条特性Type Stripping 默认启用本次发布最重要的变化是Type Stripping类型剥离在默认情况下开启Node.js 无需任何额外配置即可直接执行 TypeScript 文件。官方给出的最小验证示例$ echo const foo: string World; console.log(Hello ${foo}!); file.ts $ node file.ts Hello World!也就是说只需要把.ts文件交给node命令类型注解会被在运行时剥离代码照常执行。该功能由 Marco Ippolito 在 PR #56350 中贡献并且从该版本的提交记录可以还原它的落地过程module: unflag --experimental-strip-types取消该特性的实验性 flagmodule: remove experimental warning from type stripping移除类型剥离的实验性警告deps: update amaro to 1.1.0/1.0.0/0.5.3/0.5.2/0.5.1/0.5.0逐步升级内置的 amaro 转译器module: improve typescript error message format、module: refactor commonjs typescript loader、module: fix typescript import.meta.main。使用前提与限制需要特别注意的是该功能仍处于实验阶段experimental后续可能发生变更。具体支持语法与限制例如不支持需要运行时语义的枚举、命名空间等语法以官方 TypeScript 文档的「Type Stripping」章节typescript.html#type-stripping为准。如果希望关闭该行为可以在命令行显式传入$ node --no-experimental-strip-types file.ts从提交module: unflag --experimental-strip-types可以看出开启状态现在是默认值--no-前缀的 flag 用于回退到旧行为。对团队而言这意味着 CI 与本地开发环境只要升级到该版本即可零成本运行纯类型注解的.ts脚本但涉及复杂 TS 语法如enum、namespace、运行时装饰器等的代码仍建议使用官方tsc编译链路。三、其他值得关注的 SEMVER-MINOR 变更除 Type Stripping 外本次版本还引入了 8 项新能力逐项说明如下。3.1 esmimport.meta.main判断模块是否为入口由 Joe 贡献PR #57804在 ESM 模块中可以通过import.meta.main判断当前模块是否为主入口文件常用于「被直接运行时执行、被导入时不执行」的双重用途脚本if (import.meta.main) { // 仅当直接运行本文件时执行 main(); }3.2 fsfs-events 突发场景的 AsyncIterator 处理由 Philipp Dunkel 贡献PR #58490修复了 fs-events 在高频突发事件下使用 AsyncIterator 遍历时的处理问题使fs.watch等基于事件迭代的场景能更正确地在突发写入时保持数据一致性。3.3 permission权限模型增强本次版本对 Node.js Permission Model权限模型做了两处增强均由 Rafael Gonzaga 贡献spawn 时传播权限模型 flagPR #58853子进程通过child_process启动时权限模型的限制 flag 会正确传播避免子进程绕过父进程的权限约束permission.has(addon)PR #58951为权限模型新增对 addon原生插件的检测能力可以在src,permission层面查询某个 addon 是否被当前权限策略允许。此外还有src,permission: enhance permission model debugPR #58898与src: pass resource on permission checks for spawnPR #58758等配套改动完善了权限检查的调试输出与资源上下文传递。3.4 sqlite连接级readBigInts选项由 Miguel Marcondes Filho 贡献PR #58697在数据库连接级别新增readBigInts选项。启用后从 SQLite 读回的 INTEGER 大整数将以BigInt形式返回避免超出 JavaScriptNumber安全整数范围时丢失精度。3.5 urlfileURLToPathBufferAPI由 James M Snell 贡献PR #58700新增fileURLToPathBufferAPI可将file://形式的 URL 直接转换为Buffer形式的文件路径。相比返回字符串的fileURLToPath它更适合需要零拷贝、直接处理二进制路径的场景。3.6 watch--watch-kill-signalflag由 Dario Piotrowicz 贡献PR #58719--watch模式下新增--watch-kill-signal命令行 flag允许用户自定义重启进程时发送的信号默认通常为SIGTERM例如$ node --watch --watch-kill-signalSIGINT server.js配套提交doc: add all watch-mode related flags to node.1PR #58719把所有 watch 模式相关 flag 补进了node.1手册页并且新增测试test: add tests to ensure that node.1 is kept in sync with cli.mdPR #58878防止手册与 CLI 文档日后脱节。3.7 workerWorker支持异步可释放Async Disposable由 James M Snell 贡献PR #58385Worker现在实现了 Async Disposable 协议可以配合await using使用作用域结束时自动优雅关闭工作线程await using worker new Worker(./worker.js); // worker 在此作用域结束后自动释放配套新增测试test: add test for async disposable worker threadPR #58385验证该行为。四、模块级提交速览修复、依赖与工具链除上述新特性外v22.18.0 还包含大量修复与依赖升级。下面按模块归纳括号内为对应 PR 编号提交原文可在 v22.18.0.md 中检索。依赖升级depsnpm 升级至 10.9.3PR #58847sqlite 升级至 3.50.2PR #58882、3.50.1PR #58630simdjson 升级至 3.13.0PR #58629zlib 升级至 1.3.1-470d3a2PR #58628acorn 升级至 8.15.0PR #58711minimatch 升级至 10.0.3PR #58712googletest 更新至 35b75a2PR #58710amaro 系列升级PR #56350支撑 Type Stripping。核心模块修复crypto修复 OpenSSL 3.4 引入的 SHAKE128/256 破坏性变更PR #58942修复OPENSSL_IS_BORINGSSL宏定义包含问题PR #58845dns修复解析过程中的内存泄漏PR #58973当 timeout 为负时统一设为 1000msPR #58441http修复 keep-alive 在请求体空行之后不超时的问题PR #58178http2新增 diagnostics channel 事件http2.server.stream.closePR #58602os修复GetInterfaceAddresses内存泄漏PR #58940repl修复关闭后抛出ERR_USE_AFTER_CLOSEPR #58791tab 补全不再使用已废弃的require.extensionsPR #58653修复计算字符串属性的 tab 补全PR #58709utilutil.inspect不再因 Error 的 stack 指向自身而崩溃PR #58196v8修复 heap utils destroy 中缺失的回调PR #58846moduleconvertCJSFilenameToURL支持 schema-only 核心模块PR #58612允许 ESM loader 的 CJS 处理中require()循环依赖PR #58598更新混合模块语法错误的测试PR #55874inspector新增协议方法获取已发送/已接收数据PR #58645DOMException支持序列化/反序列化PR #58649。构建与工具链非 64 位平台禁用v8_enable_pointer_compression_shared_cagePR #58867支持自定义 inspector_protocol 路径PR #58839修复若干-Wunreachable-code告警PR #58901make distclean移除config.statusPR #58603eslint 迁移至stylistic/eslint-pluginPR #58623gyp-next 更新至 0.20.2PR #58788nodedownload 工具兼容 Python 3.14PR #58752。文档、测试与元数据文档侧修复了大量globals.md、http2、stream.md等页面的格式与链接问题并为 TypeScript 支持、--input-type补充历史条目PR #56350新增 collaboratorsislandryuPR #58714、IlyasShabiPR #58916ovflowd 回归核心协作者PR #58911测试侧新增 fs.cp、递归 readdir 等已知问题用例PR #58883、#58893并多处提升测试稳定性deflake。五、发布文章在 nodejs.org 仓库中的生成机制本文所依据的 v22.18.0.md 并非纯手工编写。从仓库源码结构看nodejs.org 提供了「一键生成发布博客」的脚本流水线理解它能帮你反推出发布文章每个部分的来源发布脚本入口scripts/release-post/index.mjs 以node index.mjs [version]方式运行不传版本号时会从 Node.js dist 的index.json自动抓取最新版本号findLatestVersion。数据抓取脚本通过fetchChangelog从对应版本线的 CHANGELOG 中按a idvX.Y.Z/a锚点切出该版本的变更区段正则rxSection通过fetchAuthor从 changelog 头部## 日期, Version X.Y.Z (LTS), author解析发布人正则rxReleaseAuthor/rxPolicy通过fetchShasums拉取SHASUMS256.txt.asc通过verifyDownloads逐条 HEAD 探测各下载文件是否可用不可用则标记*Coming soon*。模板渲染scripts/release-post/template.hbs 使用 Handlebars 将抓取到的 changelog、下载清单、SHASUMS 拼接成最终的 Markdownfrontmatterdate、category、title、layout、author也在模板中生成再经 Prettier 格式化后写入pages/en/blog/release/vX.Y.Z.md。下载清单规则scripts/release-post/downloadsTable.mjs 定义了 16 类安装包模板Windows x86/x64/arm64 的 MSI 与二进制、macOS pkg 与 darwin 二进制、Linux x64/ppc64le/s390x/armv7l/arm64、AIX、源码包等并按语义化版本过滤 16.0.0去掉 Apple Silicon 二进制、 19.9.0去掉 Windows ARM 产物、 23.0.0去掉 32 位 Windows、 24.0.0去掉 ARMv7。v22.18.0 因此同时包含 Windows 32 位与 ARMv7 产物。这类发布文章在站内还承担了「版本动态」的展示职责博客元数据由 scripts/blog-data/generate.mjs 通过流式读取每个 Markdown 的 frontmattercategory: release生成public/blog-data.json并由 next.json.mjs 注入构建util/blog.ts 中的mapBlogCategoryToPreviewType会把release类别映射为专门的预览类型分页则按 next.constants.mjs 中的BLOG_POSTS_PER_PAGE 6计算types/blog.ts 中定义了BlogPreviewType announcements | release | vulnerability。因此发布文章会直接出现在官网 Blog 的 release 栏目与年度归档year-2025、all中。六、下载产物与 SHASUMS 校验v22.18.0 的官方构建产物与校验信息同样收录在发布文章中。各平台安装包清单文件名格式如下平台安装包 / 二进制Windows 32-bitnode-v22.18.0-x86.msi/win-x86/node.exeWindows 64-bitnode-v22.18.0-x64.msi/win-x64/node.exeWindows ARM 64-bitnode-v22.18.0-arm64.msi/win-arm64/node.exemacOS 64-bitnode-v22.18.0.pkgmacOS Apple Siliconnode-v22.18.0-darwin-arm64.tar.gzmacOS Intelnode-v22.18.0-darwin-x64.tar.gzLinux 64-bitnode-v22.18.0-linux-x64.tar.xzLinux PPC LE 64-bitnode-v22.18.0-linux-ppc64le.tar.xzLinux s390xnode-v22.18.0-linux-s390x.tar.xzAIX 64-bitnode-v22.18.0-aix-ppc64.tar.gzARMv7 32-bitnode-v22.18.0-linux-armv7l.tar.xzARMv8 64-bitnode-v22.18.0-linux-arm64.tar.xzSource Codenode-v22.18.0.tar.gz全部产物存放于nodejs.org/dist/v22.18.0/目录API 文档位于nodejs.org/docs/v22.18.0/api/。官方同时发布了 PGP 签名的SHASUMS256.txt.asc其中包含每个文件的 SHA-256 校验和。发布文章末尾的### SHASUMS区块即该签名文件的内容格式如下节选-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 7bb75af308fc9f63e568968e0ef0e1600bb105abe2d2af99217ac72e9a24ffd0 node-v22.18.0-aix-ppc64.tar.gz 1dd46ad5edd1085da2b1a5b7e3e2a03d0266476786a7849a1207045fecc73d39 node-v22.18.0-arm64.msi ... -----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----校验流程建议先导入 Node.js 发布团队的 PGP 公钥用gpg --verify SHASUMS256.txt.asc验证签名可信再用sha256sum -c SHASUMS256.txt核对下载文件与官方校验和一致确保产物未被篡改。完整的 40 余行校验和条目可在发布原文的### SHASUMS一节逐条核对。七、升级建议与小结v22.18.0 作为 Jod LTS 版本线的一次常规 LTS 更新对日常开发者的直接收益集中在三点开箱即用执行.ts无需任何构建步骤即可运行纯类型注解脚本适合脚本化、CLI 工具等场景复杂 TS 语法仍需完整编译链路。新增实用 APIimport.meta.main入口判断、fileURLToPathBuffer路径 Buffer 化、Worker异步释放、--watch-kill-signal、SQLitereadBigInts分别解决了脚本入口判定、路径零拷贝、工作线程生命周期管理、watch 信号定制和大整数精度问题。安全与稳定性修复权限模型在 spawn 场景的传播增强、DNS/http/REPL 等模块的内存与超时修复以及 npm 10.9.3、sqlite 3.50.2 等依赖升级。所有变更的权威清单均可在 v22.18.0.md 中逐条查阅而想要复刻这类发布文章的生成流程可以参考 scripts/release-post 下的脚本与模板。如果你正在规划 CI 或本地环境的 Node 版本升级建议先在非生产环境验证项目中的 TypeScript 写法是否全部落在 Type Stripping 的支持语法范围内再决定是否启用这一默认行为。【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/9 21:31:12

Scrapy爬虫框架实战:从异步原理到分布式部署

简介:这是一份讲解开源Python网络爬虫框架Scrapy的PDF文档,专为Python爬虫初学者和希望系统掌握Scrapy架构的开发者准备。文档首先介绍网络爬虫的基本概念,然后围绕Scrapy引擎、调度器、下载器、蜘蛛、项目管道、下载器中间件、蜘蛛中间件等核…

2026/11/9 21:56:57

Bonsai-demo上下文长度调优:BONSAI_CTX自动RAM分层机制解析

Bonsai-demo上下文长度调优:BONSAI_CTX自动RAM分层机制解析 【免费下载链接】Bonsai-demo Bonsai Demo 项目地址: https://gitcode.com/GitHub_Trending/bo/Bonsai-demo Bonsai-demo 让你在本地运行 Bonsai / Ternary-Bonsai 系列小模型(最高 27B…

2026/11/12 4:29:20

工地电工作业证复审流程全解析 电工上岗必须这个证你知道吗

工地电工作业证复审流程全解析 电工上岗必须这个证你知道吗 你还在为找不到工作发愁?工地电工作业证复审没过,直接影响你能不能上岗。现在全国范围内,施工单位对电工证的要求越来越严格,尤其是高压电工、低压电工这类特种作业岗位,必须持证上岗。别等被…

2026/11/12 4:29:20

低压电工作业安全技术培训PPT保姆级教程:别被中介坑了,这招超实用

低压电工作业安全技术培训PPT保姆级教程:别被中介坑了,这招超实用 你是不是也遇到过这种情况?想考低压电工证,到处打听报名点,结果被中介坑了钱还考不过?别急,这篇保姆级教程就是为你准备的。不管你是开封公路工程从业者,还是准备跨省转介办理,这…

2026/11/12 4:29:19

龙江哪里有学电工证 官方回应证书过期怎么处理最靠谱

龙江哪里有学电工证 官方回应证书过期怎么处理最靠谱 证书过期了不知道怎么复审延期?在龙江地区,越来越多的电工从业者发现,手里那本特种作业操作证并不是终身有效的,一旦超过规定时间不进行复审,就会面临证件失效、无法上岗甚至面临处罚等现实问题。尤…

2026/11/12 4:24:19

考电工证用处,学历不高怕报不上名?良心建议来了

考电工证用处,学历不高怕报不上名?良心建议来了 学历不高怕报不上名?别急,考电工证用处其实比你想象的更大。特别是像你这种没有太多学历背景的朋友,电工证不仅是一张通行证,更是你改变现状的关键钥匙。别被“门槛高”吓到, 良心建议…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑