Node.js 22 现已正式发布,亮点包括 require () ing ES 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等等。Node.js 22 将于 10 月份进
Node.js 22 现已正式发布,亮点包括 require () ing ES 模块、WebSocket 客户端、V8 JavaScript 引擎的更新等等。Node.js 22 将于 10 月份进入长期支持 (LTS),但在此之前,它将在接下来的六个月内作为 “Current” 版本。
一些更新亮点包括:
V8 版本 12.4 包括 WebAssembly Garbage Collection、Array.fromAsync、Set 方法和迭代器助手等新功能。#52465
V8 的 Maglev 编译器现在在支持的架构上默认启用 (https://v8.dev/blog/maglev)。 Maglev 提高了短期 CLI 程序的性能。#51360
此版本在 --experimental-require-module 标志下为同步 ESM 图添加了 require() 支持。此版本 require() 在 标记下添加了对同步 ESM 图的支持。
如果 --experimental-require-module 启用,并且被 require() 加载的 ECMAScript 模块满足以下要求:
在最近的 package.json 或 .mjs 扩展名中使用 "type": "module" 字段显式标记为 ES 模块。
Fully synchronous(不包含 top-level await)。
require() 将会以 ES 模块的形式加载请求的模块,并返回模块名称空间对象。在这种情况下,它类似于动态 import(),但同步运行并直接返回名称空间对象。项目团队计划在将来默认情况下启用 require(esm),而不使用该标志。
#51977
Node.js 22 包括一个新的实验性功能,用于使用 cli 标志 node --run <script-in-package-json> 从 package.json 中执行脚本。它还支持 node --run test,这会执行 package.json 脚本中的测试命令。它还支持在 package.json 脚本中执行测试命令的 node --run test。#52190
将流的默认 High Water Mark 从 16KiB 增加到 64KiB。这提供了全面的性能提升,但代价是内存使用量稍高。鼓励在内存敏感环境中的用户显式设置 setDefaultHighWaterMark。#52037
从这个版本开始,Watch Mode 被认为是稳定的。当处于 Watch Mode 时,监视文件中的更改会导致 Node.js 进程重新启动。#52074
WebSocket 的浏览器兼容实现(之前位于 flag--experimental-websocket 标志之后)将默认启用。这将为 Node.js 提供无需外部依赖的 WebSocket 客户端。#51594
此版本为 node:fs 模块添加了用于模式匹配的 glob 和 globSync 函数。开发人员现在可以利用这些函数,根据指定的模式匹配文件路径。#51912
此版本提高了创建 AbortSignal 实例的效率,从而显着提高了 fetch 和测试运行程序的性能。#52505
值得注意的是,Node.js 18 将于 2025 年 4 月终止生命周期,因此官方建议用户开始计划升级到 Node.js 20 (LTS) 或 Node.js 22(即将成为 LTS)。
粉丝
0
关注
0
收藏
0