Node.jsサーバの hot reload を実現!
みなさん、こんにちは。どんぶラッコです。
前回、WebSocketサーバを実装するために Node.jsサーバを立てました。
このように、頻繁に nodeサーバを再起動する開発フェーズでは “変更があったら自動で再起動してほしい…” と思う人が多いんじゃないでしょうか?
実はそれ、nodemon
を使うと実現することができるんです!
早速、前回作った node サーバを例にして実装してみましょう。
node.jsで作られたプロジェクトならやることは一緒だよ!
nodemon 導入手順
nodemonパッケージのインストール
まずは nodemon
パッケージを 追加します。
npm i nodemon
# または yarn add nodemon
あとは 今までサーバを起動するときに node xxxx.js
と叩いていたところを nodemon xxxx.js
に変えて起動するだけです!簡単ですね。
package.json
のスクリプトとして登録して yarn hot
( npm run hot
)で起動できるようにしちゃいましょう。
{
// 中略
"scripts": {
"hot": "nodemon server.js", // 追記
},
// 中略
}
ちゃんとファイルに更新があると restart
してくれていることがわかりますね!
javascript ファイル以外の更新も検知して欲しいとき
デフォルトでは js や json ファイルの変更しか検知してくれません。
もし、 “HTMLの変更も見て更新してよ…!” などの要望がある場合は、nodemon.json
に詳細の発火条件を追記することができます。
今回は .html
, .js
ファイルの更新を監視するように指示してみます。
プロジェクトルートに nodemon.json
を作り、このように指定します。
{
"ext": "js,html"
}
その上で再度サーバを立ち上げてみてください。
js, html に変更されました!
この記事のまとめ
今回は nodemon を使ってhot reload する方法でした。
名前の由来は node + demon (daemon) なのかな?
アイコンも可愛いですね!笑
ぜひ挑戦してみてください♪