Node.js 14 发行注记

Red Hat build of Node.js 14

用于 Node.js 14 LTS

摘要

本发行注记包含与 Node.js 14 LTS 相关的重要信息。

前言

发行版本日期: 2021 年 3 月 18 日

第 1 章 所需的基础架构组件版本

红帽对下面列出的组件不提供支持,但除了明确指定为支持的组件外。

组件名称版本

Nodehift

2.1.1

npm 6

6.14.8

OpenShift Container Platform (OCP)[a]

3.11, 4.5

minishift

1.34.2 或更高版本

CDK[b]

3.11.0

git

2.0 或更高版本

oc 命令行工具

3.11 或更高版本[c]

[a] OCP 由红帽支持
[b] CDK 的支持由红帽提供支持
[c] oc CLI 工具的版本应与您使用的 OCP 版本对应。

第 2 章 功能

本节包含有关当前发行本中介绍的功能更改的信息。

2.1. 新特性和更改的功能

Node.js 14 LTS 有以下新功能和增强:

有关 Node.js 14 LTS 中的详细更改,请参阅 上游发行注记上游文档

2.1.1. 诊断报告以稳定功能提供

诊断报告功能作为 Node.js 14 LTS 中的稳定功能提供。在较早版本的 Node.js 中,这个功能作为技术预览提供。

通过此功能,您可以为异常生成诊断报告,如性能问题、内存泄漏、高 CPU 使用量等。报告采用 JSON 格式。该报告使用第一个失败数据捕获(FFDC)技术。该技术会在出错时捕获诊断数据。

2.1.2. V8 JavaScript 引擎从 v8.0 更新至 v8.4

V8 JavaScript 引擎已升级至 v8.4。引擎包含新的功能,如可选链和 API 更改,可提供更好的本地化支持。

2.1.3. Node.js metering 标签,用于 OpenShift

您可以在 Node.js pod 中添加 metering 标签,并使用 OpenShift Metering Operator 检查红帽订阅详情。

注意

不要将 metering 标签添加到 Operator 或模板部署和管理的任何 pod 中。

Node.js 应使用以下 metering 标签:

  • com.redhat.component-name: Node.js
  • com.redhat.component-type: application
  • com.redhat.component-version: 14.x.x
  • com.redhat.product-name: "Red_Hat_Runtimes"
  • com.redhat.product-version: 2021-Q1

如需更多信息,请参阅 Metering 文档。

如需有关标签 的更多信息,请参阅 了解如何更新节点上的标签

注意
  • com.redhat.product-version 中的 x.x 替换为您在部署中使用的 Node.js 的产品版本。例如,如果 Node.js 产品版本为 14.15.1,请在标签中指定 14.15.1。
  • 在 Nodeshift 模块中提供一个新的标志 rh-metering,它可自动添加 metering 标签。如果您使用 Nodeshift 模块来部署应用程序,您可以使用 rh-metering 标志自动将 metering 标签添加到 pod。

2.1.4. 默认启用了完整的 ICU ( Unicode 的International 组件)

Unicode (ICU)的国际组件支持对软件应用程序的国际化和全局化。它提供对许多语言和区域设置的支持。它简化了软件应用程序的开发和部署。

在 Node.js 14 LTS 中,默认启用了 full-icu 选项。此选项可启用完整的 ICU 数据集。有关 全满选项的更多信息, 请参阅 国际化支持

在之前的 Node.js 版本中,默认只启用英语数据集。您必须执行额外的步骤才能获得并启用对其他区域设置的支持。

如果您需要英语支持,并且希望通过删除完整的 ICU 数据集来节省磁盘空间,以 root 用户身份输入以下命令:

# dnf remove nodejs-full-i18n

2.1.5. 支持 IBM Z 和 IBM Power 系统中的 Node.js 运行时

Red Hat build of Node.js for s390x 和 ppc64le 平台只在 IBM Z 和 IBM Power Systems 基础架构上置备的 OpenShift 环境中被支持。不支持在 IBM Z 和 IBM Power Systems 上独立安装 RHEL 运行 Node.js 应用程序。

IBM Z 和 IBM Power Systems 支持的产品新镜像可在 Red Hat Container Catalog 中找到。

有关在 IBM Z 和 IBM Power Systems 基础架构上置备的 OpenShift 上部署 Node.js 应用程序的更多信息,请参阅 Node.js 的示例应用程序。

2.2. 已弃用的功能

本发行版本中没有已弃用的功能。

2.3. 技术预览

以下功能在 Node.js 14 LTS 发行版中作为技术预览提供。

2.3.1. 红帽构建的 Node.js 的断路器模式

Opossum 是 Node.js 的断路器。红帽构建的 Node.js 提供完全支持的 @redhat/opossum 模块。

断路器模式用于降低网络故障和对服务架构具有高延迟的影响,而服务会异步调用其他服务。

可以使用 @redhat/opossum 模块从红帽客户 registry 下载。具有 @redhat 命名空间的模块应从红帽注册表下载,所有其他模块都应从 npm 注册表下载。要指定下载路径,使用以下代码在应用程序的根目录中创建 .npmrc 文件:

@redhat:registry=https://npm.registry.redhat.com
registry=https://registry.npmjs.org

指定下载路径后,要在应用程序中安装 @redhat/opossum 模块,请输入以下命令:

$ npm install @redhat/opossum

要使用 @redhat/opossum 模块,请在应用程序中添加以下代码:

const CircuitBreaker = require(‘@redhat/opossum’)

2.3.2. 用于同步本地存储的新类

AsyncLocalStorage 类在回调中创建异步状态,并保证链。使用类将数据存储在这些异步状态。

2.3.3. WebAssembly 系统接口(WASI)

Node.js 的 WebAsembly 软件包可提高性能和跨平台支持。

新的 WASI API 提供了 WebAssembly 系统接口规格的实现。使用此界面执行 WebAssembly 应用程序。使用该接口,应用程序也会访问底层操作系统。

2.3.4. 删除了 EcmaScript 模块的警告信息

在较早版本的 Node.js 中,当应用程序中使用 EcmaScript 模块时,会返回一个警告消息。警告消息表示 EcmaScript 模块是实验性功能。

在 Node.js 14 LTS onward 中,删除了警告消息。但请注意,EcmaScript 模块仍作为技术预览提供。

2.4. 支持的构架

Node.js 构建器镜像和 RPM 软件包可用,并支持以下 CPU 架构:

  • AMD x86_64
  • OpenShift 环境中的 IBM Z (s390x)
  • OpenShift 环境中的 IBM Power Systems (ppc64le)

第 3 章 发行组件

第 4 章 修复的问题

此发行版本包含 Node.js 14 LTS 社区版本中的所有固定问题。

第 5 章 已知问题

没有影响本发行版本的已知问题。

第 6 章 影响所需基础架构组件的已知问题

没有影响此发行版本所需的基础架构组件的已知问题。