Node.js モニターである Nodemon の操作

Node.js モニターである Nodemon の操作

Nodemon は、ディレクトリ内のファイルの変更を識別したときにノード アプリケーションを動的に再起動することにより、Node.js アプリの構築を支援するコマンドライン インターフェイス ユーティリティです。

この記事では、特定のニーズに合わせて nodemon をインストールおよび構成する方法と、nodemon の使用時に発生する一般的なエラーについて説明します。

ノードモンを使用する理由

Web サーバーやバックエンド アプリを開発する場合、コードを変更してエラーを処理し、プログラムの構造とロジックを改善する必要があります。

Nodemon は、サーバーのコードに変更を加えると、サーバーを自動的に再起動することで支援します。これにより、時間を節約でき、デバッグが容易になります。

ノードモンのインストール方法

Nodemon は、開発の依存関係としてローカルにインストールすることも、システム パスにグローバルにインストールすることもできます。

nodemon をグローバルにインストールするには、コンピューターのターミナルで次の npm コマンドを実行します。

npm install nodemon --globally

nodemon をローカルにインストールするには、ターミナルのプロジェクト ディレクトリ内で次の npm コマンドを実行する必要があります。

npm install nodemon --save-dev

Web サーバー アプリケーションで Nodemon を起動する

nodemon を起動して Web サーバー アプリケーションを監視するには、いくつかの手順が必要です。以下のコード ブロックは、文字列メッセージをコンソールに記録するサーバーの基本的なスクリプトです。

// app.js
const express = require('express');
const app = express();

app.listen((5000), ()=>{
    console.log(`I'm learning about nodemon`)
});

このスクリプトの監視を開始するには、監視対象のファイル名を指定して nodemon コマンドを実行します。

nodemon app.js

結果の出力には、次のテキストのようなものが含まれているはずです。

[nodemon] starting `node app.js`
I'm learning about nodemon

nodemon が正常に開始されると、app.jsファイルに変更を加えると、サーバー アプリ全体がリロードされます。

コンピューターのターミナルでCtrl + Cを押すと、nodemon を終了できます。rsコマンドを入力して、nodemon プロセスを手動で再起動することもできます。

コマンドライン オプションで Nodemon を使用する

Nodemon には、その動作を変更するために使用できるいくつかのコマンドライン オプションがあります。

使用可能なすべての nodemon オプションとその機能のリストを表示するには、次のコマンドを実行します。

nodemon --help options

利用可能な多くのオプションの中には、次のものがあります。

  • –delay : ファイルが変更されると、nodemon はデフォルトで 1 秒待ってからプロセスを再起動します。— delayスイッチを使用して別の遅延を指定できます。nodemon が再起動するまでの待機時間を選択できます。例えば: nodemon --delay five app.js
  • –ignore : ignore スイッチ オプションを使用すると、Web サーバー アプリケーション内の特定のファイルを無視できます。次のように switch オプションを使用できます。 nodemon --ignore lib/app.js
  • –watch : デフォルトでは、実行時に nodemon は現在の作業ディレクトリを監視します。このオプションを制御するには、—watch オプションを使用して特定のファイル パスを追加し、監視するディレクトリを変更します。たとえば、サーバー ディレクトリを監視するには、次のようにします。 nodemon --watch server
  • –exec : JavaScript ユーティリティですが、Nodemon を使用して TypeScript、Python、Golang などの非 JavaScript ファイルを監視することもできます。— execオプションを使用すると、そのようなスクリプトで nodemon の自動リロード機能を取得できます。たとえば、TypeScript スクリプトで nodemon を使用すると、次のようになります。 nodemon --exec ts-node
  • –ext : Nodemon はデフォルトで、JavaScript、TypeScript、CoffeeScript、および JSON 拡張子を持つファイルを検索します。これは、Node.js プロジェクトが、実行前に純粋な JavaScript にコンパイルされる TypeScript および CoffeeScript ファイルを操作できるためです。一方、JSON ファイルも Node.js プロジェクトのメタデータの保存に使用されることが多いため、監視されます。– e (または — ext ) スイッチを使用して、監視するファイルのカンマ区切りリストを指定できます。たとえば、拡張子が.js.json、および.mjsのファイルを監視するには、次のようにします。 nodemon --ext js,json,mjs

Nodemon 構成ファイルの使用

Nodemon は、ローカルおよびグローバルの構成ファイルをサポートしています。これらは、ホーム ディレクトリまたはプロジェクトのルート ディレクトリにあります。これらは通常、nodemon.jsonファイルと呼ばれます。このようにして、nodemon 構成を保存し、他のプロジェクトで簡単に再利用できます。

コマンド ライン オプションは、常に構成ファイルの設定を上書きします。作業の優先順位には、コマンドライン オプション、ローカル、および構成ファイルが含まれます。

構成ファイルでは、任意のコマンド ライン オプションを JSON キー値として使用できます。

例えば:

{
  "watch": [ "server" ],
  "ext": [ "js", "ts", "json" ],
  "delay": "5000",
  "ignore": [ "lib/app.js" ]
}

上記のnodemon.jsonファイルでは、nodemon はサーバーディレクトリを監視し、 .js.ts、および.json拡張子を持つファイルを指定し、ファイルの変更後に再起動する前に5秒間遅延し、最後にlib/appのファイルの変更を無視するように設定されています。 .js.

別の方法として、すべてのパッケージ構成を 1 つの場所に保持する場合、nodemon は構成にpackage.jsonを使用することをサポートします。package.json ファイルの nodemonConfigで、構成ファイルと同じ形式で構成を指定します。

たとえば、この package.json ファイルには、上記の nodemon.json ファイルと同じ構成が含まれています。

{
  "name": "nodemon",
  "version": "",
  "description": "",
  "nodemonConfig": {
    "watch": [
      "server"
    ],
    "ext": [ "js", "ts", "json" ],
    "delay": "5",
    "ignore": [
      "lib/app.js"
    ]
  }
}

Nodemon エラーの処理

アプリの開発中は、途中で JavaScript のエラーを処理する必要があります。これらのエラーを処理するには、まずエラーが発生する理由を知る必要があります。

nodemon を使用しているときに発生する可能性のある一般的なエラーを次に示します。

[nodemon] app crashed - waiting for file changes before starting...

このエラー メッセージが表示される理由はいくつかあり、原因を修正する方法もいくつかあります。

  • nodemon が監視しているファイルの JavaScript 構文が正しくありません。このエラーを防ぐには、JavaScript コードを調べて、コード内の構文エラーを特定します。
  • バックグラウンドで複数のタスクを実行すると、この特定のタスクに干渉する可能性があります。これを修正するには、すべてのバックグラウンド プロセスを停止し、プログラムを再度実行してみてください。
  • 不適切なディレクトリ編成も問題を引き起こす可能性があります。たとえば、app.js ファイルと package.json ファイルが同じディレクトリにない場合です。プログラムの実行に影響を与えないように、ディレクトリを適切に構成してください。

ノードモンに慣れる

nodemon の有用性と、nodemon がどのようにワークフローを改善し、エラーを減らし、デバッグをより迅速かつ簡単にするかについて説明しました。

ただし、nodemon を使用しているときにエラーが発生する可能性があります。開発者として、これらのエラーのトラブルシューティング方法を学ぶことは重要です。

コメントを残す

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