Express 毎回再起動するの面倒くさくない??
Node.jsでExpressを用いてWebサーバーを作成する記事を今まで記載してきました。
今後も学んだことを記事にしていきますがExpressで機能を追加した際に動作検証をするとき、
何度も再起動するのめんどくさいな、と思ったときにNodemon
を知って便利!となったので記事にします。
Nodemon
Nodemon
はnpmに公開されているパッケージの一つです。
私が把握している機能は
指定したディレクトリ内のファイルが変更された場合、自動的にnodeアプリケーションを再起動する
⇒Expressでファイルを変更した場合、サーバの再起動をNodemonが自動で行ってくれる
です。
毎回コマンドで再起動しなくていいのは便利じゃないですか!?笑
※他にも機能があれば教えていただきたいです。
Nodemon 設定
下記記事で記載したフォルダ構成を元に説明します。
ExpressでWebサーバーを立ててみる
※自分で読み替えられる人は自分のプロジェクトに読み替えてください。
私が最初の頃はnpm install パッケージ
ってどこでしたらいいの??ってなってたので
基準となるフォルダ構成を用いて説明します。
コマンドプロンプト or ターミナルでsrc
ディレクトリに移動してください。
src
ディレクトリに移動した後に以下のコマンドを実行してください。
npm install --save-dev nodemon
※npm installで--save-dev
を用いるかどうかについては別記事でまとめます。
インストール後、package.json
のscripts
にdevStart
の1行を追加してください。
"scripts": {
"devStart": "nodemon app.js"
}
設定は以上になります。
※なぜpackage.json
に設定をしているかは下記記事を見てください。
Expressの起動方法
Nodemonを用いてExpressを起動してみる
コマンドプロンプト or ターミナルでsrc
ディレクトリに移動して下記コマンドを実行してください。
npm run devStart
下記結果が表示されWebサーバー(Express)が起動します。
> mock-server@1.0.0 devStart
> nodemon app.js
[nodemon] 3.1.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node app.js`
listen on port... 8000
何かファイル内を変更し保存してみてください(コメントの追加だけでも大丈夫です)。
以下のように再起動したログが表示されます
[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
listen on port... 8000
毎回コマンドで再起動しなくて良くなりました!!
余談
npmのパッケージをインストールしてるのにソースコードで利用しないのは初めてだったため
少し違和感がありましたが、こうゆう使い方もあるのかと知ることができました。