Node.jsの最新版「Node.js 21」が公開:fetch/WebStreamsの安定、テストランナーでのglob実装など
Googleの「V8」JavaScriptエンジンで動作するサーバサイドJavaScript環境の最新版「Node.js 21」が公開された。
OpenJS Foundationは2023年10月17日(米国時間)、Googleの「V8」JavaScriptエンジンで動作するサーバサイドJavaScript環境の最新版「Node.js 21」を公開した。
Node.js 20は2023年10月に長期サポート(LTS)に入り、Node.js 21がNode.jsの「現行」リリースラインとして置き換えられた。Node.js 21は2024年4月までの期間、Node.jsの「最新」リリースとなる。Node.js 21の主な変更点は以下の通り。
fetch/WebStreamsの安定
fetchモジュールとWebStreamsに重要な変更が含まれており、両モジュールは、最近のアップデート後に安定版としてマークされた。この更新によりWebStreams、FormData、Headers、Request、Response、fetchに影響を及ぼす。
組み込みのWebSocketクライアント
実験的なブラウザ互換のWebSocketが実装された。これは、「--experimental-websocket」フラグを使用して有効にできる。実験的な機能であるため、変更の対象となる可能性がある。
Node.jsテストランナーでのglob(ファイルパターンのワイルドカード)のサポート
テストランナーは「--test」パラメータを指定する際にglobをサポートするようになった。これは、より効率的で柔軟な方法でテストを実行するためのglobを使用できることを意味する。例えば、「node --test **/*.test.js」は複数のディレクトリ全体で拡張子が「.test.js」の全てのファイルに対しテストを実行することができる。
モジュールのデフォルトを反転するフラグ「--experimental-default-type」の実装
Node.jsで使用するデフォルトのモジュールシステムを切り替えるために新しいフラグ「--experimental-default-type」を使用できるようになった。既に明示的にESModulesやCommonJSとして定義されている入力(例えば、『package.json』の『"type"』フィールドや 『mjs/.cjs』ファイル拡張子、『--input-type』フラグで指定されているもの)には影響を与えない。
モジュールのカスタマイズフックglobalPreloadの削除
モジュールのカスタマイズ フック「globalPreload」が削除された。OpenJS Foundationはデータをアプリケーションスレッドからカスタマイズフックに送信するためには「register」を使い、スレッド間の通信チャネルを確立するために「initialize」フックを使うよう呼びかけている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Node.jsの最新版「Node.js v20.6.0」が公開 「Node.js 16.x」はサポート終了へ
Googleの「V8」JavaScriptエンジンで動作するサーバサイドJavaScript環境の最新版「Node.js v20.6.0」が公開された。 - Node.jsでgRPCサービスを開発する――クライアントサイドストリーミングとは?
第5回は、Node.jsでストリーミング型のgRPCサービスを開発してみます。ここでは、ストリーミング型のうちクライアントからの複数リクエストとなるクライアントサイドストリーミングを実装してみます。 - Node.jsがブラウザ上で動作する「WebContainers」のAPIを公開 StackBlitz
StackBlitzは「WebContainer API」を公開した。開発者はWebContainer APIを使用することで、Node.jsを完全にブラウザ内で実行できる。ブラウザ上でHTTPサーバを立ち上げ、プレビューURLを他のユーザーと共有することもできる。