Node.js 18がリリースされました。このリリースのハイライトには、V8 JavaScriptエンジンを10.1に更新すること、デフォルトでグローバルFetch APIを有効にすること、コアテストランナーモジュールが含まれます。Node.js 18は、今後6か月間の「現在の」リリースであり、2022年10月にLTSにアップグレードされ、その後2025年4月までサポートされます。
新しいブラウザ互換API
Global Fetch API(実験的)
Node.js 18は、デフォルトで実験的なグローバルFetch APIを提供し、HTTP / 1.1クライアントundiciから実装され、 node-fetchに触発されています。
このAPIの使用例:
const res = await fetch('https://nodejs.org/api/documentation.json'); if(res.ok){ const data = await res.json(); console.log(data); }
この追加により、次のグローバル変数を使用fetch
できますFormData
:、、、、、。Headers
Request
Response
- APIは、
--no-experimental-fetch
コマンド。 - より多くのテストカバレッジが追加され、APIが可能な限り多くの仕様を実装するまで、APIは実験的なままです。
Web Streams API(実験的)
Node.jsは、WebStreamsAPIの実験的な実装をグローバルに公開するようになりました。これは、次のAPIが使用可能であることを意味します。
ReadableStream
、、、、、、、、、、、、、、、、、、、、。ReadableStreamDefaultReader
_ReadableStreamBYOBReader
_ReadableStreamBYOBRequest
_ReadableByteStreamController
_ReadableStreamDefaultController
_TransformStream
_TransformStreamDefaultController
_WritableStream
_WritableStreamDefaultWriter
_WritableStreamDefaultController
_ByteLengthQueuingStrategy
_CountQueuingStrategy
_TextEncoderStream
_TextDecoderStream
_CompressionStream
_DecompressionStream
その他のグローバルAPI
さらに、次のAPIがグローバルに公開されるようになりました。
Blob
-https ://nodejs.org/api/buffer.html#class-blobBroadcastChannel
-https ://nodejs.org/api/worker_threads.html#class-broadcastchannel-extends-eventtarget
テストランナーモジュール(実験的)
結果をTAP形式で報告するJavaScriptテストの作成に役立つ新しいnode:test
モジュールます。このモジュールは、を介してimport test from 'node:test';
インポート。次に、2つの子テストを使用した親テストの例を示します。
test('トップレベルテスト'、async(t)=> { await t.test('subtest 1'、(t)=> { assert.strictEqual(1、1); }); await t.test('subtest 2'、(t)=> { assert.strictEqual(2、2); }); });
注:テストランナーモジュールはプレフィックスのみを使用できますnode:
。プレフィックスnode:
はコアモジュールをロードすることを意味し、プレフィックスを省略してインポート'test'
すると、ユーザーランドモジュールがロードされます。
このテストランナーの詳細については、ドキュメントをご覧ください。
ツールチェーンとコンパイラのアップグレード
Node.jsは、いくつかの異なるプラットフォーム用にビルド済みのバイナリを提供します。
- Linux用のビルド済みバイナリはRedHatEnterprise Linux(RHEL)8でビルドされ、Debian 10、RHEL 8、Ubuntu20.04などのglibc2.28以降に基づくLinuxディストリビューションと互換性があります。
- macOS用にビルド済みのバイナリにはmacOS10.15以降が必要です。
- AIXの場合、サポートされる最小アーキテクチャーがPower7からPower8に引き上げられました。
- Node.jsでのV8依存関係の構築に問題があるため、32ビットWindows用に事前に構築されたバイナリは利用できません。
V8が10.1に更新されました
V8エンジンはバージョン10.1に更新され、次の新機能が含まれています。