KDE BLOG

Webデザインやコーディングについて書いています

nodemonでnode.jsを自動再起動させる

<目次>

nodemonとは

Nodemon is a utility that will monitor for any changes in your source and automatically restart your server. Perfect for development.
訳)Nodemonはソースの変更を監視し、自動的にサーバーを再起動するユーティリティです。開発に最適です。
(nodemon公式サイトより)

通常、Node.jsで開発時にソースを修正したら、都度node.jsプロセスを再起動させないと反映されません。
原因はNode.jsで読み込まれたJSファイルがキャッシュされるためのようです。

コードを修正するたびに手動でプロセスを再起動させるのは面倒です。
それを解決してくれるのがnodemonです。

使い方

※今回シンプルに、プロジェクトディレクトリ直下においてある、下記のserver.jsを実行させるとします。
server.jsは、サーバーを立てて、アクセスすると「Hello」と表示するシンプルな内容です。

const http = require('http');
const server = http.createServer();

server.on('request', (req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write('Hello'); // 表示テキスト
  res.end();
});

server.listen(8000);
console.log('server listening...');

1. nodemonをインストール

npm install --save nodemon

(あまりグローバルインストールしたくないのでローカルインストールします)

2. server.js実行

$ ./node_modules/.bin/nodemon server.js

基本的にはこれだけで監視が始まります。

実際に動かしてみた結果

監視が始まった状態で、localhost:8000にアクセスすると、「Hello」と表示されます。

その後にserver.jsを下記に変更してみます。

(略)....
変更前: res.write('Hello');
↓
変更後: res.write('World');

そしてブラウザをリロードすると、表示テキストが「World」に変わります。
(通常はCtrl + CなどでNode.jsを停止させて、再度$ node server.jsで再起動しなくてはいけません)

これでだいぶコードの修正&確認が捗りそうです。
今回は最低限の使い方だけですが、今後他に便利な使い方があった場合、加筆していきたいと思います。

参考