Node.js 19 の新しいウォッチ モードと知っておくべきその他の機能

Node.js 19 の新しいウォッチ モードと知っておくべきその他の機能

2022 年 10 月、Node.js は 19 番目のバージョンをリリースしました。Node.js v.18 のリリースから 6 か月後に、ネイティブ テスト ランナー モジュールなどの大幅なアップグレードが行われました。

Node.js 19 の注目すべき機能は、新しい実験的な監視モードです。これにより、サーバーを再起動せずにサーバーに変更を加えることができます。

Node.js 19 より前は、監視モードはサードパーティ ライブラリを使用する場合にのみ可能でした。監視モードの使用方法を学び、バージョン 19 の Node.js のその他の更新を調べます。

ノードの新しいウォッチ モード

Node.js 19 では、実験的な–watchフラグが導入されています。これは、指定されたファイルの変更を検出したときに Node.js サーバーを再起動します。以前はnodemonと呼ばれるサードパーティ ライブラリを使用してこれを行うことができましたが、この更新では Node.js にその機能が追加され、依存関係が不要になりました。

–watchフラグを使用して Node.js サーバーを再起動するには、 nodeコマンドを–watchフラグに続けて実行し、Node が変更を検出したときに再起動するファイルの名前を指定します。

たとえば、次のコード ブロックをserver.jsファイルと考えてください。

// server.js
const express = require("express");
const app = express();
const PORT = 6060;

app.listen(PORT, () => console.log(`App listening on port: ${PORT}`));

このファイルの変更を監視し、変更が発生したときにサーバーを再起動するには、端末で次のコマンドを実行します。

node --watch server

このコマンドは server.js ファイルを監視し、ファイルに加えられた変更を検出すると Node.js サーバーを再起動します。

この機能はまだ実験段階であるため、–watchフラグを使用してサーバーを再起動する際に問題が発生する可能性があることに注意してください。

その他のアップグレードと修正

Node.js 19 に含まれるその他の改善と修正には、次のようなものがあります。

デフォルトで HTTP キープアライブ

http/httpsモジュールのkeepAliveオプションは、リクエストの完了後にサーバーへの接続を維持するかどうかを制御します。もともと、keepAliveオプションを手動でtrueに設定する必要がありました。このオプションは、接続を開いたままにし、後続の要求で再利用するようにサーバーに指示します。

Node.js 19 では、keepAliveオプションはデフォルトで true に設定されています。この追加により、新しい接続を確立するためのオーバーヘッドが大幅に削減されます。

WebCrypto API の安定化

WebCrypto API は、Node.jsによるWeb Crypto API 標準の実装です。Node.js 19 では、Ed25519Ed448X25519、およびX448アルゴリズムを除いて、WebCrypto 実装が安定しています。

この API には、globalThisモジュールまたはNode.js 18 でコア Node.js モジュールとサードパーティ ライブラリを区別するために導入されたnode:プレフィックスを使用してアクセスできます。

例えば:

// node: prefix
const crypto = require("node:crypto");

// globalThis
const webcrypt = globalThis.crypto;

カスタム ESM 解像度調整

Node.js 19 では、以前の実験的な–experimental-specifier-resolutionフラグが削除されました。これにより、ECMAScript がモジュールをインポートする方法と同様に、パッケージ指定子を使用してファイルを検索するための実験的なサポートが提供されました。

Node.js は、カスタム ローダーを使用して機能を複製できるため、このフラグを削除しました。カスタムローダーを使用すると、モジュールをロードして処理するための独自のロジックを提供できるため、より多くのモジュール形式をサポートしたり、ロードする前にモジュールをさらに処理したりできます。

DTrace/SystemTap/ETW サポートの削除

DTrace、SystemTap、および ETW (Event Tracing for Windows) は、実行中のプログラムの動的トレースと分析を提供するモジュールです。もともと Node.js では、これらを使用して、アプリケーションのアクティビティに関するデータを収集できました。これには、パフォーマンス インジケーター、エラー、およびその他の可能なランタイム発生が含まれます。

Node.js 19 では、Node.js は DTrace、SystemTap、および ETW のサポートを削除しました。これは、これらのモジュールを最新の状態に維持および維持することに伴う複雑さにまだ見合わないためです。そのため、リソースを優先するために、サポートを中止しました。

Node.js 19 へのアップグレード

Node.js 19 では、上記で説明した新しい監視モードなど、アプリケーションで検討する価値のあるさまざまな機能と改善が導入されています。Node.js 19 にアップグレードするには、公式 Web サイトにアクセスして最新バージョンをダウンロードします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です