Release Notes for Node.js 14
For use with Node.js 14 LTS
Abstract
Preface
Date of release: 2021-03-18
Chapter 1. Required Infrastructure Component Versions
Red Hat does not provide support for components listed below, with the exception of components explicitly designated as supported.
Component name | Version |
---|---|
Nodeshift | 2.1.1 |
npm 6 | 6.14.8 |
OpenShift Container Platform (OCP)[a] | 3.11, 4.5 |
Minishift | 1.34.2 or later |
CDK[b] | 3.11.0 |
git | 2.0 or later |
oc command line tool | 3.11 or later[c] |
[a]
OCP is supported by Red Hat
[b]
CDK is supported by Red Hat
[c]
The version of the oc CLI tool should correspond to the version of OCP that you are using.
|
Chapter 2. Features
This section contains information about feature changes introduced in the current release.
2.1. New and Changed features
Node.js 14 LTS has the following new features and enhancements.
For detailed changes in Node.js 14 LTS, see the upstream release notes and upstream documentation.
2.1.1. Diagnostic report available as stable feature
The diagnostic report functionality is available as a stable feature in Node.js 14 LTS. In earlier releases of Node.js, the functionality was available as Technology Preview.
This feature enables you to generate diagnostic reports for anomalies, such as, performance issues, memory leaks, high CPU usage, and so on. The report is in JSON format. The report uses the first failure data capture (FFDC) technology. This technology captures diagnostic data at the time when the error occurs.
2.1.2. V8 JavaScript engine updated from v8.0 to v8.4
The V8 JavaScript engine has been upgraded to v8.4. The engine contains new features, such as, optional chaining and API changes that provide better localization support.
2.1.3. Node.js metering labels for OpenShift
You can add metering labels to your Node.js pods and check Red Hat subscription details with the OpenShift Metering Operator.
Do not add metering labels to any pods that an operator or a template deploys and manages.
Node.js should use the following metering labels:
-
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
See Metering documentation for more information.
For more information on labels, see Understanding how to update labels on nodes.
-
Replace the x.x in
com.redhat.product-version
with the product version of Node.js that you are using in the deployment. For example, if the Node.js product version is 14.15.1, specify 14.15.1 in the label. -
A new flag
rh-metering
is available in the Nodeshift module, which automatically adds metering labels. If you are using the Nodeshift module to deploy your applications, you can use therh-metering
flag to automatically add the metering labels to the pods.
2.1.4. Full ICU (International Components for Unicode) data set is enabled by default
International Components for Unicode (ICU) supports internationalization and globalization of software applications. It provides support for many languages and locales. It simplifies the development and deployment of software applications in all languages.
From Node.js 14 LTS, the full-icu
option is enabled by default. This option enables full ICU data set. For more information about the full-icu
option, see Internationalization support.
In previous releases of Node.js, only English data set was enabled by default. You had to perform additional steps to get and enable support for other locales.
If you require support for English only and you want to save disk space by removing the full ICU data set, enter the following command as the root user:
# dnf remove nodejs-full-i18n
2.1.5. Support for Node.js Runtime on IBM Z and IBM Power Systems
The Red Hat build of Node.js for s390x and ppc64le platform is supported only in OpenShift environments provisioned on IBM Z and IBM Power Systems infrastructure. Running a Node.js application on a stand-alone installation of RHEL on IBM Z and IBM Power Systems is not supported.
New images for products supported on IBM Z and IBM Power Systems are available in the Red Hat Container Catalog.
For more information about deploying Node.js applications on OpenShift provisioned on IBM Z and IBM Power Systems infrastructure, see the section Example applications for Node.js.
2.2. Deprecated features
There are no features deprecated in this release.
2.3. Technology preview
The following features are available as Technology Preview features in Node.js 14 LTS release.
2.3.1. Circuit breaker pattern Opossum for Red Hat build of Node.js
Opossum is a circuit breaker for Node.js. Red Hat build of Node.js provides a fully supported @redhat/opossum
module.
The circuit breaker pattern is used to reduce the impact of network failure and high latency on service architectures, where services asynchronously invoke other services.
The @redhat/opossum
module is available for download from the Red Hat Customer registry. The modules with the @redhat
namespace should be downloaded from the Red Hat registry and all the other modules should be downloaded from the npm registry. To specify the download paths, create a .npmrc
file in the root directory of your application with the following code:
@redhat:registry=https://npm.registry.redhat.com registry=https://registry.npmjs.org
After specifying the download paths, to install the @redhat/opossum
module in your application enter the following command:
$ npm install @redhat/opossum
To work with the @redhat/opossum module add the following code to your application:
const CircuitBreaker = require(‘@redhat/opossum’)
2.3.2. New class for async local storage
The AsyncLocalStorage
class creates an asynchronous state in callbacks and promise chains. Use the class to store data in these asynchronous states.
2.3.3. WebAssembly System Interface (WASI)
The WebAssembly packages for Node.js improve performance and cross-platform support.
The new WASI APIs provide an implementation of the WebAssembly System Interface specification. Use this interface for sandboxed execution of WebAssembly applications. Using the interface, the applications also get access to the underlying operating system.
2.3.4. Removed the warning message for EcmaScript modules
In earlier releases of Node.js, a warning message was returned when EcmaScript modules were used in the applications. The warning message indicated that the EcmaScript modules are experimental features.
From Node.js 14 LTS onward, the warning message has been removed. However, note that the EcmaScript modules are still available as Technology Preview.
2.4. Supported architectures
Node.js builder images and RPM packages are available and supported for use with the following CPU architectures:
- AMD x86_64
- IBM Z (s390x) in the OpenShift environment
- IBM Power Systems (ppc64le) in the OpenShift environment
Chapter 3. Release components
Chapter 4. Fixed issues
This release incorporates all of the fixed issues in the community release of Node.js 14 LTS.
Chapter 5. Known issues
There are no known issues affecting this release.
Chapter 6. Known issues affecting required infrastructure components
There are no known issues affecting infrastructure components required by this release.
Chapter 7. Advisories related to this release
The following advisories have been issued to document enhancements, bugfixes, and CVE fixes included in this release.