導入
Node.jsでは、変更を有効にするにはプロセスを再起動する必要があります。これにより、ワークフローに余分な手順が追加されます。nodemonを使用してプロセスを自動的に再起動することで、この余分な手順を省くことができます。.
nodemonは、remによって開発されたコマンドラインインターフェース(CLI)ツールで、Nodeアプリケーションのパッケージ化、ファイルシステムの監視、プロセスの自動再起動を行います。この記事では、nodemonのインストール、セットアップ、および設定方法を説明します。.
前提条件
- Node.jsがインストールされている
ステップ1 – nodemonをインストールする
まず、マシンにnodemonをインストールする必要があります。ツールは、グローバルまたはプロジェクトにローカルにインストールできます。 npm または 糸 インストール。.
nodemonをグローバルに起動するには npm インストール:
npm install nodemon --globalまたは 糸:
yarn global add nodemonnodemon をローカルにインストールすることもできます。ローカルインストールを行う場合は、--save-dev (または --dev)オプションを使用して、nodemon を開発者依存関係としてインストールできます。.
Nodemonをローカルにインストールする npm インストール:
npm install nodemon --save-devまたは 糸:
yarn add nodemon --devローカル インストールに関して注意すべき点の 1 つは、nodemon コマンドを直接使用できないことです。
Outputcommand not found: nodemonローカルにインストールされたパッケージを実行できます。
./node_modules/.bin/nodemon.js [your node app]npm スクリプトや npx でも使用できます。.
ステップ2 – nodemonを使ったExpressプロジェクトの例の設定
nodemonを使ってNodeスクリプトを起動することができます。例えば、ファイル内にExpressサーバーがある場合、 サーバー.js 起動すると、 ノードモン 起動して次のような変更を確認します。
nodemon server.jsNode でスクリプトを実行するのと同じ方法で引数を渡すことができます。
nodemon server.js 3006現在のディレクトリまたはサブディレクトリ内の、監視されているデフォルトの拡張子 (js、.mjs、.json、.coffee、または .litcoffee) のいずれかを持つファイルに変更を加えるたびに、プロセスが最初からやり直されます。.
「Dolphin アプリケーションがポート ${port} でリッスンしています!」というメッセージを送信するサンプルの server.js ファイルを作成しましょう。.
const express = require('express')
const app = express()
const port = 3000
app.listen(port, ()=> console.log(`Dolphin app listening on port ${port}!`))nodemon を使用して例を実行します。
nodemon server.jsターミナル出力には次の出力が表示されます。
Output
[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`
Dolphin app listening on port 3000!nodemon がまだ実行されている間に、server.js ファイルに変更を加えましょう。出力を別のメッセージに変更します: Shark application listening on port ${port}!.
ターミナル出力には次の出力が表示されます。
Output
[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
Shark app listening on port 3000!Node.js アプリケーションからのターミナル出力に新しい変更が表示されます。.
いつでも入力できます rs そして打つ 入力プロセスを再起動します。.
一方、nodemon はプロジェクトの package.json ファイルで指定されたメイン ファイルも検索します。
{
// ...
"main": "server.js",
// ...
}メイン ファイルが指定されていない場合、nodemon は起動スクリプトを検索します。
{
// ...
"scripts": {
"start": "node server.js"
},
// ...
}package.json に変更を加えたら、nodemon を呼び出して、server.js を経由せずにサンプル アプリケーションをウォッチ モードで起動できます。.
ステップ3 – nodemonオプション
nodemon の既存の構成設定を変更できます。.
主なオプションのいくつかを見てみましょう。
- –exec: –exec スイッチを使用して、ファイルを実行するバイナリを指定します。例えば、ts-node バイナリと組み合わせると、–exec は変更の監視と TypeScript ファイルの実行に役立ちます。.
- –ext: 監視するファイル拡張子を指定します。このスイッチでは、ファイル拡張子をカンマ区切りのリストで指定します(例: –ext js,ts)。.
- –delay: デフォルトでは、nodemon はファイルが変更されるとプロセスを再起動する前に1秒間待機しますが、–delay スイッチを使用すると、異なる遅延時間を指定できます。例えば、3.2秒の遅延時間を指定するには、nodemon –delay 3.2 と入力します。.
- –watch: –watch スイッチを使用して、監視する複数のディレクトリまたはファイルを指定します。監視したいディレクトリごとに –watch スイッチを追加してください。デフォルトでは現在のディレクトリとそのサブディレクトリが監視対象となりますが、-watch スイッチを使用することで、特定のサブディレクトリまたはファイルのみを監視対象とすることができます。.
- –ignore: 特定のファイル、ファイル パターン、またはディレクトリを無視するには、–ignore スイッチを使用します。.
- –verbose: 起動を再起動するために変更されたファイルに関する情報を含む、より詳細な出力。.
次のコマンドで利用可能なすべてのオプションを確認できます。
nodemon --helpこれらのオプションを使用して、次のシナリオを満たすコマンドを作成しましょう。
- サーバーディレクトリの監視
- .ts拡張子のファイルを指定する
- 拡張子が.test.tsのファイルを無視する
- ts-nodeでファイル(server/server.ts)を実行する
- ファイルを変更した後、再起動するまで3秒待ちます
nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts
ターミナル出力には次の出力が表示されます。
Output
[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): server
[nodemon] watching extensions: ts
[nodemon] starting `ts-node server/server.ts`このコマンドは、シナリオの要件を満たすために、–watch、–ext、–exec、–ignore、および –delay オプションを組み合わせます。.
ステップ4 – nodemonの設定
前の例では、nodemon の実行時に設定スイッチを追加するのは面倒です。複雑な設定が必要なプロジェクトでは、これらのオプションを nodemon.json ファイルで定義する方がよいでしょう。.
たとえば、次の例は前のコマンドライン例と同じ構成ですが、nodemon.json ファイルに配置されています。
{
"watch": [
"server"
],
"ext": "ts",
"ignore": [
"*.test.ts"
],
"delay": "3",
"execMap": {
"ts": "ts-node"
}
}–exec スイッチの代わりに execMap を使用することに注意してください。execMap を使用すると、特定のファイル拡張子のバイナリを指定できます。.
あるいは、プロジェクトに nodemon.json 構成ファイルを追加したくない場合は、nodemonConfig キーの下の package.json ファイルに次の設定を追加できます。
{
"name": "nodemon-example",
"version": "1.0.0",
"description": "",
"nodemonConfig": {
"watch": [
"server"
],
"ext": "ts",
"ignore": [
"*.test.ts"
],
"delay": "3",
"execMap": {
"ts": "ts-node"
}
},
// ...nodemon.json または package.json に変更を加えた後、目的のスクリプトを使用して nodemon を起動できます。
nodemon server/server.tsnodemon は設定を取得して使用します。これにより、設定を保存、共有、複製することができ、コピー&ペーストやコマンドラインでの入力ミスを防ぐことができます。.
結果
この記事では、Node.jsアプリケーションでnodemonを使用する方法を学びました。このツールは、Node.jsサーバーを停止・起動して変更を確認するプロセスを自動化するのに役立ちます。.









