Node.jsでExpressアプリ作るなら、脊髄反射でnodemon入れとこう

この記事では、Node.jsサーバーの監視ツールである、nodemonの使い方について書いていきます。ドラえもんみたいな名前ですが、nodemonのmonは ”monitor(監視)” のmonです。

nodemonを使うと何が嬉しい?

みなさんがnodeアプリを開発している時に、npm startでNodeを起動し、localhost:3000とかで確認していると思いますが、デフォルトの設定だと、Nodeファイルに修正を加えても、すぐには起動しているアプリに反映されず、一度起動しているプロセスを落として、再起動しないと反映されません。

しかし、nodemonを使ってNodeを起動すると、ファイルの修正を常にウォッチし、変更がかかるとそれを検知してくれるので、いちいち再起動する手間が省けます。

「ファイルを修正したけど、なんで反映されてないの・・・?」

(数分悩む)

「Node再起動してなかったわ・・・」

初心者の頃だとこんなくだらないミスで時間をロスするのはもったいないです。

nodemonを導入しよう

nodemonの導入手順はいたって簡単なので、Nodeアプリを新規作成するときは、迷わず最初に入れておきましょう。

1. nodemonのインストール

まずは、npmでnodemonをインストールしてあげます。

npm install nodemon --save

実はこの時点でもうnodemonは使えます。

nodemon app.js

でNodeのファイルを指定してあげると、nodemonでアプリが立ち上がります。

パスがうまく通っておらず、”nodemon: command not found” みたいなエラーが出てしまった場合は、以下のような方法で実行しましょう。

node node_modules/nodemon/bin/nodemon.js app.js

しかしこれを毎回実行するのは面倒なので、package.jsonに登録して、コマンド化してあげるのが一般的です。

2. package.jsonの書き換え

package.jsonにnpmコマンドを登録する箇所があります。

"scripts": {
    "start": "node node_modules/nodemon/bin/nodemon.js app.js"
}

ここのstartの部分は正直なんでも良いです。この場合だと、”npm start” というコマンドを実行すると、”node node_modules/nodemon/bin/nodemon.js app.js” が代わりに実行されます。

覚えやすくて、タイプしやすいコマンドにすれば良いかと思います。

3. 起動確認

さて、package.jsonも修正できたので、以下のコマンドを実行して、Nodeを立ち上げましょう。

npm start
% node start
> hoge@0.0.0 start /Users/hoge  
> nodemon app.js  

[nodemon] 1.8.1  
[nodemon] to restart at any time, enter `rs`  
[nodemon] watching: *.*  
[nodemon] starting `node app.js`  

ここで、app.jsを修正すると、自動で再起動がかかります。

[nodemon] restarting due to changes...  
[nodemon] starting `node app.js`  

rsと打つと、自分で再起動もできるみたいです。