第 2 章 功能


本节包含有关红帽构建的 Node.js 22 版本中的功能更改的信息。

2.1. 新功能和更改的功能

Node.js 22 LTS 具有以下新功能和 Red Hat build of Node.js 支持的增强功能。

有关 Node.js 22 LTS 的详细信息,请参阅上游社区 发行注记 和文档

2.1.1. V8 JavaScript 引擎升级到 v12.4

此发行版本包括将 V8 JavaScript 引擎升级到 v12.4,这是 Chromium 124 的一部分。

升级的 V8 JavaScript 引擎包括以下新功能和增强:

有关 V8 JavaScript Engine 中可用的更改的更多信息,请参阅 V8 博客

2.1.2. 为 Node.js 流增加默认高水标记

红帽构建的 Node.js 22 将 Node.js 流的默认高水标记从 16 KB 增加到 65 KB。此功能增强有助于提高 Node.js 流的一般性能。

注意

此功能增强还会导致内存用量增加。如果您的环境区分大小写,您可以使用 setDefaultHighWaterMark () 更改默认值。

如需更多信息,请参阅 Node.js new stream.Writablenew stream.Readable 文档。

2.1.3. 提高了 AbortSignal 创建的性能

红帽构建的 Node.js 22 提供了更有效地创建 AbortSignal 实例。此功能增强大大提高了 fetch () API 和 test runner 模块的性能。

如需更多信息,请参阅 Node.js AbortSignal 文档。

2.1.4. 提高了同步文件系统 API 的性能

红帽构建的 Node.js 22 通过为 UTF-8- 编码的字符串数据包含高效率快速路径来增强 writeFileSync () 方法。此发行版本还使用改进的 writeFileSync () 功能来帮助优化 appendFileSync () 方法。此功能增强侧重于最大程度提高字符串数据操作的效率。

如需更多信息,请参阅 Node.js fs.writeFileSyncfs.appendFileSync 文档。

2.1.5. 改进了对错误的 IPV6 配置的处理

从 Node.js 17 以后,Node.js 不再优先选择 IPv4 地址而不是 IPv6 地址。Node.js 遵循根据域名搜索(DNS)条目返回的顺序。这个行为通常不会影响正确配置的主机。但是,此行为可能会导致部分或错误配置 IPv6 堆栈的主机出现问题。最新版本旨在通过包含 Happy Eyeballs 算法的实施以及修复边缘情况来提高用户配置不正确的 IPv6 堆栈。

红帽构建的 Node.js 22 在 net.createConnection 流中包括三个新的事件用于连接尝试:

  • 当建立新的连接尝试时,会发出 connectionAttempt 事件。使用 Happy Eyeballs 时,可能会多次发出此事件。
  • 当连接尝试失败时,会发出 connectionAttemptFailed 事件。使用 Happy Eyeballs 时,可能会多次发出此事件。
  • 当连接尝试超过指定的超时时间时,会发出 connectionAttemptTimeout 事件。使用 Happy Eyeballs 时,最后一次尝试不会发出此事件。如果您不使用 Happy Eyeballs,则不会发出此事件。

另外,红帽构建的 Node.js 22 解决了在上一个尝试失败后新连接尝试可能启动的问题,用户已销毁连接。此问题会在早期版本中造成一个失败的断言。

注意

与之前的版本类似,如果您遇到问题,您可以使用 --dns-result-order=ipv4first CLI 选项恢复到旧行为。您还可以使用-- no-network-family-autoselection 选项禁用 Happy Eyeballs。

如需更多信息,请参阅 Node.js net.Socket 文档。

2.1.6. 支持 Web Streams 的保护 原始 压缩格式

Red Hat build of Node.js 22 添加了对 CompressionStreamDecompressionSteam constructors 中的 deflate-raw 参数的支持。deflate-raw 参数使用没有标头和尾随校验和的 DEFLATE 算法压缩或解压缩流。此功能增强确保了现代浏览器支持的 web-streams 压缩的一致性。

如需更多信息,请参阅 Node.js CompressionStreamDecompressionStream 文档。

2.1.7. 对监视模式的完全支持

红帽构建的 Node.js 22 提供监视模式,作为可在生产环境中使用的稳定功能。在早期版本中,监视模式仅作为实验性功能提供。

您可以使用 node --watch CLI 选项,以观察模式运行 Node.js 应用。以 watch 模式运行应用程序意味着,如果您修改导入的文件,进程会重启,这为内部循环开发周期提供了核心优势。

Watchdog 模式包括以下选项:

  • --watch 选项以监视模式启动 Node.js。
  • --watch-path 选项以监视模式启动 Node.js,并指定要监视的路径。
  • --watch-preserve-output 选项禁止在监视模式重新启动进程时清除控制台。

    注意

    此选项还需要使用-- watch--watch-path 选项。

如需更多信息,请参阅 Node.js- -watch 文档。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部