Node.js 16 リリースノート


Red Hat build of Node.js 16

Node.js 16 LTS との使用

Red Hat Customer Content Services

概要

本リリースノートには、Node.js 16 LTS に関する重要な情報が含まれています。

はじめに

リリース日:2021-12-21

第1章 必要なインフラストラクチャーコンポーネントのバージョン

Node.js の Red Hat ビルドを使用する場合は、次のインフラストラクチャーコンポーネントが必要です。サポート対象として明示的に指定されているコンポーネントを除き、Red Hat はこれらのコンポーネントのサポートを提供していません。

Expand
コンポーネント名バージョン

Nodeshift

2.1.1

npm 8

8.1.2

OpenShift Container Platform (OCP)[a]

3.11、4.5

git

2.0 以降

oc コマンドラインツール

3.11 以降[b]

[a] OCP は、Red Hat によってサポートされています。
[b] CLI ツール oc のバージョンは、使用している OCP のバージョンに対応する必要があります。

第2章 機能

このセクションには、Node.js16 リリースの Red Hat ビルドで導入された機能の変更に関する情報が含まれています。

2.1. 新機能および変更された機能

Node.js 16 LTS には、Node.js の Red Hat ビルドがサポートする次の新機能と拡張機能があります。

Node.js 16 LTS の詳細な変更は、upstream release notes および upstream documentation を参照してください。

2.1.1. FIPS 対応の Red Hat Enterprise Linux (RHEL) システムでの Node.js ランタイムのサポート

Node.js の Red Hat ビルドは、FIPS 対応の RHEL システムで実行し、RHEL が提供する FIPS 認定ライブラリーを使用します。

2.1.2. V8 JavaScript エンジンが v8.4 から v9.4 にアップグレードされた

V8 JavaScript エンジンが v9.4 にアップグレードされました。

エンジンには、正規表現の一致でキャプチャーされた文字列の開始インデックスと終了インデックスを提供する ECMAScript RegExp 一致インデックスなどの新機能が含まれています。正規表現に /d フラグが含まれている場合は、一致オブジェクトの .indices プロパティーを使用して、インデックス配列にアクセスできます。以下に例を示します。

> const matchObj = /(Java)(Script)/d.exec('JavaScript');
undefined
> matchObj.indices
[ [ 0, 10 ], [ 0, 4 ], [ 4, 10 ], groups: undefined ]
> matchObj.indices[0]; // Match
[ 0, 10 ]
> matchObj.indices[1]; // First capture group
[ 0, 4 ]
> matchObj.indices[2]; // Second capture group
[ 4, 10 ]

アップグレードされた V8 JavaScript エンジンは、次の JavaScript 言語機能も提供します。

  • Array.prototype.at
  • エラーと原因
  • Object.hasOwn

V8 JavaScript エンジンで利用可能な変更の詳細については、V8 ブログ を参照してください。

2.1.3. Timers Promises API

Timers Promises API は、Node.js 16 LTS の新しい安定した機能です。

Timers Promises API は、Promise オブジェクトを返すタイマー関数の代替セットを提供します。この API により、util.promisify() を使用する必要がなくなります。以下に例を示します。

import { setTimeout } from 'timers/promises';
async function run() {
  await setTimeout(5000);
  console.log('Hello, World!');
}
run();

2.1.4. OpenShift の更新済み Node.js メータリングラベル

メータリングラベルを Node.js Pod に追加し、OpenShift Metering Operator を使用して Red Hat サブスクリプションの詳細を確認できます。

注記

メータリングラベルは、Operator がデプロイおよび管理する Pod に追加しないでください。

Node.js 14 LTS リリースでの導入以降、OpenShift の Node.js メータリングラベルが変更されました。

Node.js 16 LTS は、次の更新されたメータリングラベルを使用します。

  • com.company:Red_Hat
  • rht.prod_name:"Red_Hat_Runtimes"
  • rht.prod_ver:2021-Q4
  • rht.comp:Node.js
  • rht.comp_ver:16.x.x
  • rht.subcomp:
  • rht.subcomp_t: application

詳細は、メータリング のドキュメントを参照してください。

ラベルの詳細は、ノードでラベルを更新する方法について を参照してください。

注記
  • メータリングラベルは、Operator またはテンプレートがデプロイおよび管理する Pod に追加しないでください。
  • rht.comp_ver の xx を、デプロイメントで使用している Node.js の製品バージョンに置き換えます。たとえば、Node.js 製品バージョンが 16.13.1 の場合は、ラベルに 16.13.1 を指定します。
  • rht.subcomp ラベルに Node.js の空白値が割り当てられていることを確認します。

2.1.5. Red Hat Enterprise Linux 9 のサポート

このリリースの Red Hat build of Node.js は、Red Hat Enterprise Linux 9 での使用も認定されています。

Red Hat は、Red Hat Enterprise Linux 9 での使用が認定されている Red Hat build of Node.js 16 LTS リリース用に一連のコンテナーイメージを提供するようになりました。これらのコンテナーイメージを使用して、Red Hat Enterprise Linux 9 ホストで Node.js アプリケーションをビルドし、実行できます。認定されたコンテナーイメージの詳細は、リリースコンポーネント を参照してください。

2.2. 非推奨の機能

以下の機能は、Node.js 16 の Red Hat ビルドで非推奨になりました。

注記

このリリースで廃止または削除された機能の詳細については、nodejs.org の Web サイト を参照してください。

2.2.1. process.binding() へのアクセスの実行時の非推奨

多くのコアモジュールの場合、このリリースには、process.binding () 関数へのアクセスの実行時の非推奨が含まれています。例: process.binding(‘http_parser')

2.2.2. OpenShift の Node.js メータリングラベル

元々 Node.js 14 LTS リリースで導入された OpenShift の Node.js メータリングラベルは、新しいメータリングラベルのセットに置き換えられました。

このリリースでは、次の Node.js メータリングラベルが非推奨になりました。

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

2.3. テクノロジープレビューの機能

以下の機能は、Node.js 16 LTS リリースのテクノロジープレビュー機能として利用できます。

2.3.1. Web 暗号化 API

Web Crypto API は、標準の W3C Web Cryptography API の実装です。Web Crypto API には、require('crypto').webcrypto ステートメントを使用してアクセスできます。以下に例を示します。

const { subtle } = require('crypto').webcrypto;

(async function() {

  const key = await subtle.generateKey({
    name: 'HMAC',
    hash: 'SHA-256',
    length: 256
  }, true, ['sign', 'verify']);

  const digest = await subtle.sign({
    name: 'HMAC'
  }, key, 'I love cupcakes');

})();

2.3.2. Web Streams API

Web Streams API は、ストリーミングデータを処理するための WHATWG Streams Standard の実装です。これは実験的なものであるため、このリリースでは Web Streams API はグローバルオブジェクトに公開されていません。Web Streams API にアクセスするには、新しい stream/web コアモジュールを使用する必要があります。以下に例を示します。

import { ReadableStream, WritableStream } from 'stream/web';
// Or from 'node:stream/web'

2.3.3. ESM Loader Hooks API

ESM Loader Hooks API は、ECMAScript モジュール (ESM) ローダーフックを統合して、将来のローダーチェーンを容易にするのに必要な手順を表します。

  1. resolve: resolve [+ getFormat]
  2. load: getFormat + getSource + transformSource

一貫性を保つために、getGlobalPreloadCode ローダーフックの名前は globalPreload に変更されました。

一つ以上の廃止されたフックをエクスポートするローダーは、誤ったフックをリストする単一の非推奨警告をトリガーします。

2.3.4. ワーカースレッド間で生データを共有するための新しいクラス

Blob クラスは、複数のワーカースレッド間で安全に共有できる不変の生データをカプセル化します。

Blob は、Buffer クラスのサブクラスです。

2.3.5. テストランナーモジュール

node:test モジュールにより、Test Anything Protocol (TAP) 形式で結果を報告する JavaScript テストの作成が容易になります。

テストランナーモジュールをインポートするには、以下の構文を使用します。

import test from 'node:test';
注記

テストランナーモジュールをインポートする場合は、前述の例のように node: 接頭辞を指定する必要があります。node: 接頭辞は、コアモジュールの読み込みを示します。node: 接頭辞を省略すると、Node.js は Node.js コアから テスト ランナーモジュールをインポートするのではなく、Node.js モジュールのユーザーランドエコシステムからテストモジュールのインポートを試みます。

以下のコードは、2 つのサブテストを持つ親テストの実装例を示しています。

test('top level test', async (t) => {
  await t.test('subtest 1', (t) => {
    assert.strictEqual(1, 1);
  });

  await t.test('subtest 2', (t) => {
    assert.strictEqual(2, 2);
  });
});

詳細は、Node.js Test Runner のドキュメント を参照してください。

2.4. サポートされているアーキテクチャー

Node.js ビルダーイメージおよび RPM パッケージが利用可能で、以下の CPU アーキテクチャーとの使用がサポートされます。

  • AMD x86_64
  • ARM64
  • OpenShift 環境の IBM Z (s390x)
  • OpenShift 環境の IBM Power System (ppc64le)

第3章 リリースコンポーネント

第4章 修正された問題

本リリースでは、Node.js 16 LTS のコミュニティーリリースのすべての修正された問題が含まれます。

第5章 既知の問題

本リリースに影響する既知の問題はありません。

第6章 必要なインフラストラクチャーコンポーネントに影響する既知の問題

本リリースで必要なインフラストラクチャーコンポーネントに影響を与える既知の問題はありません。

法律上の通知

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る