10月17日、Node.jsはバージョン23.0.0をリリースした。この新バージョンでは、いくつかの重要な変更が導入されている。

主なハイライト
• require(esm)がデフォルトで有効化
• 32ビットWindowsシステムのサポートが削除
• node --runコマンドの安定化
• テストランナーの強化(カバレッジファイルのグロブパターン対応)
これにより、Node.js v23.0.0は現行バージョンとなり、2024年10月末にNode.js v22が長期サポート(LTS)に移行する際に引き継がれる。今後6ヶ月間、v23は現行リリースラインを維持し、2025年4月までサポートされる予定だ。
require(esm)がデフォルトで有効化
v23.xでは、ネイティブESモジュールをrequire()で読み込む機能がデフォルトで有効化された。これまで、この機能は--experimental-require-moduleというコマンドラインフラグで利用可能だったが、今回からフラグなしで使用できるようになった。ただし、この機能はまだ実験的であり、ユーザーからのフィードバックをもとにさらなる調整が行われる予定である。そのため、初めてネイティブESモジュールをrequire()で読み込むと、実験的な機能であることを示す警告が表示される。
注意点
• require()でESモジュールを読み込む際、ERR_REQUIRE_ESMエラーは発生しなくなった。
• ただし、ESモジュールやその依存関係にtop-level awaitが含まれている場合、ERR_REQUIRE_ASYNC_MODULEエラーが発生する可能性がある。
この機能を無効にしたい場合は、--no-experimental-require-moduleフラグを使用することで従来の動作に戻すことができる。また、この機能は、今後v23.xでテストされ、必要に応じて調整された後、v22.xにもバックポートされる予定である。
32ビットWindowsサポートの削除
バージョン23.0.0では、32ビットWindowsシステムのサポートが正式に削除された。この変更により、32ビットシステム上でのNode.jsの利用はできなくなる。開発者は、64ビット版のWindowsを使用することが推奨される。
node --runコマンドの安定化
新バージョンでは、node --runコマンドが安定化された。このコマンドは、Node.jsアプリケーションの実行を簡素化し、スクリプトをすぐに実行する際に便利である。
テストランナーの強化
v23では、テストランナーにも改善が施され、カバレッジファイルに対してグロブパターンのサポートが追加された。これにより、開発者はより柔軟にテストカバレッジを計測し、対象ファイルを指定することができる。
その他の注目すべき変更点
• 32ビットWindowsのサポートが削除されたことに伴い、ビルドシステムの大規模な変更が行われた。
• V8エンジンの新しいコミットが取り込まれ、Node.jsのパフォーマンスと互換性が向上。
• テストカバレッジファイルに対するグロブパターンのサポートが追加されたことで、テストの柔軟性が向上。
詳細はNode.js — Node v23.0.0 (Current)を参照していただきたい。