node.jsアプリケーションを開発またはデバッグするとき、JSファイルを変更するときは、常にCTRL+Cを押してプログラムを終了してから再起動する必要があります。少し小さなパラメーターを変更したとしても、これらの迷惑な操作を常に繰り返す必要があります。ファイルが変更されて時間を節約する後にnode.js(またはファイルをリロード)を自動的に再起動する方法はありますか?最初は、GruntのWatchモジュールを使用してファイルの変更を監視することを考えましたが、後でオンラインで確認して、私たちが考えていたことがすでに考えられており、良い仕事をしていることがわかりました。ノードスーパーバイザーは、この要件を達成できるようなノードモジュールです。
GitHubの指示によると、ノードスーパーバイザーは、Node.jsアプリケーションがサーバーでクラッシュすると、元々自らを再起動するために使用されていました。もちろん、プロジェクトのJS(またはcoffeeScript)ファイルの変更を監視し、再起動してアプリケーションのデバッグを容易にすることもできます。
インストール方法(グローバルモジュールとしてインストール):
コードコピーは次のとおりです。
NPMインストールスーパーバイザー-G
node.jsプログラムのメインエントランスがapp.jsであると仮定すると、ファイルの変更の監視を開始するために次のコマンドを実行するだけです。
コードコピーは次のとおりです。
スーパーバイザーapp.js
スーパーバイザーは、次のようにリストされている複数のパラメーターもサポートしています。
コードコピーは次のとおりです。
//デフォルトで監視されるフォルダーまたはJSファイルは「。」です。
-w | -watch <watchitems>
//監視されているフォルダーまたはJSファイルを無視します
-i | -ignore <ignoreitems>
//ファイルの変更を監視するための時間間隔(期間)、デフォルトはnode.jsに組み込まれた時間です
-p | - poll-interval <milliseconds>
//監視するファイル拡張機能はデフォルトで「ノード| js」です
-e | -extensions <extensions>
//実行されるメインアプリケーションはデフォルト「ノード」になります
-x | -exec <Executable>
//デバッグモードを有効にします(-debugフラグを使用してノードを起動します)
- デバッグ
//サイレントモード、デバッグ情報は表示されません
-q | -quiet
例:
コードコピーは次のとおりです。
スーパーバイザーmyApp.js
スーパーバイザー-W py_scripts -e 'py' -x python myapp.py
スーパーバイザー-W lib、server.js、config.js、server.js
同じ関数を実装する同様の製品には、run.jsとNodemanが含まれます。ただし、文書の観点から見ると、前者は監督者と同様に5分で使用できるものであり、機能は監督者よりもわずかに弱いです。後者にはより多くの機能があり、対応するドキュメントは特に長く、徹底的に勉強するのに少なくとも30分かかると推定されています。選択するものは、プロジェクトのニーズと個人的な好みに依存します。