開発者ドキュメント

nodemonを使用してNode.jsアプリを自動的に再起動する方法

序章

Node.jsでは、変更を有効にするためにプロセスを再起動する必要があります。 これにより、ワークフローに追加のステップが追加されます。 nodemon を使用してプロセスを自動的に再開することにより、この余分な手順を排除できます。

nodemon は、 @rem によって開発されたコマンドラインインターフェイス(CLI)ユーティリティであり、ノードアプリをラップし、ファイルシステムを監視し、プロセスを自動的に再起動します。

この記事では、インストール、セットアップ、および構成について学習します nodemon.

前提条件

この記事をフォローしたい場合は、次のものが必要になります。

このチュートリアルは、Node.js v17.1.0、npm v8.1.2、 nodemon v2.0.15、および express v4.17.1。

ステップ1—インストール nodemon

まず、インストールする必要があります nodemon あなたのマシンで。 npmまたはyarnを使用して、ユーティリティをプロジェクトにグローバルまたはローカルにインストールします。

グローバルインストール

インストールできます nodemon グローバルに npm:

  1. npm install nodemon --global

またはと yarn:

  1. yarn global add nodemon

ローカルインストール

インストールすることもできます nodemon ローカルで。 ローカルインストールを実行する場合、インストールできます nodemon dev依存関係として --save-dev (また --dev).

インストール nodemon ローカルで npm:

  1. npm install nodemon --save-dev

またはと yarn:

  1. yarn add nodemon --dev

ローカルインストールで注意すべきことの1つは、 nodemon 直接コマンド:

  1. Output
    command not found: nodemon

ローカルにインストールされたパッケージを実行できます。

  1. ./node_modules/nodemon/bin/nodemon.js [your node app]

npmスクリプトまたはnpxでも使用できます。

これで、 nodemon インストールプロセス。

ステップ2—Expressプロジェクトの例を設定する nodemon

使用できます nodemon ノードスクリプトを開始します。 たとえば、Expressサーバーのセットアップserver.js ファイル、開始できます nodemon 次のような変更に注意してください。

  1. nodemon server.js

Nodeを使用してスクリプトを実行している場合と同じ方法で、引数を渡すことができます。

  1. nodemon server.js 3006

デフォルトの監視対象拡張子の1つを含むファイルに変更を加えるたびに(.js, .mjs, .json, .coffee、 また .litcoffee)現在のディレクトリまたはサブディレクトリで、プロセスが再起動します。

例を書いてみましょう server.js メッセージを出力するファイル: Dolphin app listening on port ${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:

  1. 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 app listening on port ${port}!.

端末出力には次のように表示されます。

Output
[nodemon] restarting due to changes... [nodemon] starting `node server.js` Shark app listening on port 3000!

Node.jsアプリからのターミナル出力は、新しい変更を表示しています。

次のように入力すると、いつでもプロセスを再開できます。 rs と打つ ENTER.

または、 nodemon また、 main プロジェクトで指定されたファイル package.json ファイル:

package.json
{
  // ...
  "main": "server.js",
  // ...
}

もし main ファイルが指定されていません、 nodemon 検索します start 脚本:

package.json
{
  // ...
  "scripts": {
    "start": "node server.js"
  },
  // ...
}

に変更を加えたら package.json、その後、電話をかけることができます nodemon パスインせずにサンプルアプリをウォッチモードで起動するには server.js.

ステップ3—オプションの使用

利用可能な構成設定を変更できます nodemon.

主なオプションのいくつかを見てみましょう:

次のコマンドを使用して、使用可能なすべてのオプションを表示できます。

  1. nodemon --help

これらのオプションを使用して、次のシナリオを満たすコマンドを作成しましょう。

  1. 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.json ファイル。

たとえば、これは前のコマンドラインの例と同じ構成ですが、 nodemon.json ファイル:

nodemon.json
{
  "watch": [
    "server"
  ],
  "ext": "ts",
  "ignore": [
    "*.test.ts"
  ],
  "delay": "3",
  "execMap": {
    "ts": "ts-node"
  }
}

の使用に注意してください execMap の代わりに --exec スイッチ。 execMap 特定のファイル拡張子のバイナリを指定できます。

または、追加したくない場合は nodemon.json プロジェクトに構成ファイルを追加すると、これらの構成をプロジェクトに追加できます。 package.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 目的のスクリプトを使用して:

  1. nodemon server/server.ts

nodemon 構成を取得して使用します。 このようにして、構成を保存、共有、および繰り返して、コマンドラインでのコピーアンドペーストまたは入力エラーを回避できます。

結論

この記事では、使用方法を検討しました nodemon Node.jsアプリケーションで。 このツールは、変更を表示するためにノードサーバーを停止および開始するプロセスを自動化するのに役立ちます。

使用可能な機能とトラブルシューティングエラーの詳細については、公式ドキュメントを参照してください。

Node.jsの詳細については、Node.jsトピックページで演習とプログラミングプロジェクトを確認してください。

モバイルバージョンを終了