Node.js 是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。Node.js 的生态系统是目前最大的开源包管理系统。
由于上月 Node.js 22 已正式发布,亮点包括 require() ES 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等等!
Node.js 22 64位下载
V8 升级至 12.4
V8 发布的 12.4 版本包括诸如 WebAssembly 垃圾回收、Array.fromAsync、Set 方法和迭代器助手等新功能。
Maglev
V8 的 Maglev 编译器现在默认启用于支持的架构上(https://v8.dev/blog/maglev)。Maglev 提高了短生命周期 CLI 程序的性能。
由 Keyhan Vakil 贡献于 #51360
支持 require() 同步 ESM 图
此版本在 –experimental-require-module 标志下为同步 ESM 图添加了 require() 支持。
运行 package.json 脚本
Node.js 22 包括一个新的实验性功能,用于使用 cli 标志 node –run 执行 package.json 中的脚本。它还支持 node –run test,这会执行 package.json 脚本中的测试命令。
流默认高水位标记
将流的默认高水位标记从 16KiB 增加到 64KiB。这提供了全面的性能提升,但会略微增加内存使用量。鼓励在内存敏感环境中的用户显式设置 setDefaultHighWaterMark。
监视模式(node –watch)
从此版本开始,监视模式被视为稳定。在监视模式下,监视文件的更改会导致 Node.js 进程重新启动。
WebSocket
WebSocket 的浏览器兼容实现以前被隐藏在标志 –experimental-websocket 后面,现在将默认启用。这为 Node.js 提供了一个无需外部依赖项的 WebSocket 客户端。
glob 和 globSync
此版本在 node:fsmodule 中添加了 glob 和 globSync 函数,用于模式匹配。开发人员现在可以利用这些函数根据指定的模式匹配文件路径。
改进 AbortSignal 创建的性能
此版本提高了创建 AbortSignal 实例的效率,显著改善了 fetch 和测试运行器的性能。
更新日志
2025年8月28日,版本22.19.0 ‘Jod’(长期支持版),@aduh95
显著变化
[8e2076a24f] – (SEMVER-MINOR) cli: 添加 NODE_USE_SYSTEM_CA=1(Joyee Cheung)#59276
[e592d739c2] – (SEMVER-MINOR) cli: 在 –cpu-prof-name 中支持 ${pid} 占位符(Haram Jeong)#59072
[cda1dab6e2] – (SEMVER-MINOR) 加密:添加tls.setDefaultCACertificates()方法(Joyee Cheung)#58822
[1f184513e9] – (SEMVER-MINOR) dns: 支持最大超时时间 (theanarkh) #58440
[bace73a173] – doc:更新关于如何验证版本的说明(Antoine du Hamel)#59113
[fa9a9e9c69] – (SEMVER-MINOR) esm:取消标记 –experimental-wasm-modules(Guy Bedford)#57038
[390a9dc20b] – (SEMVER-MINOR) http: 添加 server.keepAliveTimeoutBuffer 选项(Haram Jeong)#59243
[c12c5343ad] – lib:文档弃用 _http_*(Sebastian Beltran)#59293
[f57ee3d71f] – (SEMVER-MINOR) 网络:更新网络黑名单,以允许文件保存和文件管理(alphaleadership)#58087
[035da74c31] – (SEMVER-MINOR) 进程:添加 threadCpuUsage 功能(Paolo Insogna)#56467
[8e697d1884] – (SEMVER-MINOR) zlib:为zstdCompress和zstdDecompress添加字典支持(lluisemper)#59240
……


