オープンソースのJavaScript実行環境であるNode.jsの開発チームは、最新バージョンとなる「Node.js 21」を10月17日(現地時間)にリリースした。
Node.js 21では、V8エンジンの最新版であり、Chromium 118の一部であるV8 11.8への更新が行われており、パフォーマンスが向上するとともに、配列のグループ化や、ArrayBuffer.prototype.transferおよびWebAssemblyの拡張const式が実装されている。
また、テストランナでは--testパラメータを指定する際のglob式をサポートしており、強力なglobパターンを使用してテストをより効率的、かつ柔軟に実行できるようになった。
さらに、新たに追加されたフラグ--experimental-default-typeによって、Node.jsで使用されるデフォルトのモジュールシステムの入れ替えが可能になっている。ただし、package.json "type"フィールド、ファイル拡張子.mjs/.cjs、--input-typeフラグなどによってESモジュールまたはCommonJSとして明示的に定義されている入力は影響を受けない。また、現時点で暗黙のうちにCommonJSとして扱われているものは、代わりに--experimental-default-type=moduleでESモジュールとして解釈されるほか、--experimental-wasm-modulesが渡され、ファイルがWebAssemblyプリアンブルである\0asmで始まる場合は、拡張子のないファイルはWebAssemblyとして解釈される。
ほかにも、モジュールのカスタマイズフックglobalPreloadが削除され、代わってアプリケーションスレッドからカスタマイズフックにデータを送信するためにregisterを使用し、initializeフックによってスレッド間の通信チャネルを確立するようになるとともに、fs.writeFile関数へのフラッシュオプションの追加、パフォーマンスの向上、llhttp 9.1.2厳格モードの強化、navigatorオブジェクトの統合など、さまざまな機能追加・改善が行われた。
- 修正履歴
-
- 2023/10/24 12:20 当初、タイトルおよび本文の表記に誤りがございました。お詫びして訂正します。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です