Node.js 16 リリースノート
はじめに リンクのコピーリンクがクリップボードにコピーされました!
リリース日:2021-12-21
第1章 必要なインフラストラクチャーコンポーネントのバージョン リンクのコピーリンクがクリップボードにコピーされました!
Node.js の Red Hat ビルドを使用する場合は、次のインフラストラクチャーコンポーネントが必要です。サポート対象として明示的に指定されているコンポーネントを除き、Red Hat はこれらのコンポーネントのサポートを提供していません。
第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) ローダーフックを統合して、将来のローダーチェーンを容易にするのに必要な手順を表します。
-
resolve: resolve [+ getFormat] -
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章 リリースコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- Node.js 16 Builder Image for RHEL 8
- Node.js 16 Universal Base Image 8
- Node.js 16 Minimal Stand-alone Image for RHEL 8
- Node.js 16 Minimal Universal Base Image 8
- Node.js 16 Builder Image for RHEL 9
- Node.js 16 Universal Base Image 9
- Node.js 16 Minimal Stand-alone Image for RHEL 9
- Node.js 16 Minimal Universal Base Image 9
第4章 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
本リリースでは、Node.js 16 LTS のコミュニティーリリースのすべての修正された問題が含まれます。
第5章 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
本リリースに影響する既知の問題はありません。
第6章 必要なインフラストラクチャーコンポーネントに影響する既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
本リリースで必要なインフラストラクチャーコンポーネントに影響を与える既知の問題はありません。