JavaScript

nodemonでサーバー開発を効率化する【修正後に自動再起動】

どうも、つよぽんです!

今回は、サーバー開発を効率化させることが出来るツールである「nodemon」の解説をします。

今回の記事内容は、以下のリンク先で使っているスライドの一部を補足した記事になります。

実際に手を動かして「nodemon」を使ってみたい方は、以下のスライドの13ページ目以降を参考にしていただけたらと思います。

あわせて読みたい
nodemonの導入【コード修正時にサーバーを自動で再起動する】今回はnodemonについて学習します。nodemonはexpressの機能ではありませんが、nodemonを使うことで効率よく開発できるようになります。通常はサーバー起動時にコードを修正すると手動でサーバーを再起動して修正を反映させる必要がありますが、nodemonを使うことでサーバーの再起動を自動化できます。...

今回の記事は次のような方に向けて書きました。

想定読者
  1. expressを使ったサーバー開発を効率的にしたい

この記事を読み終えた後のあなたは次のことがわかるようになっています。

この記事を読み終えた後のあなた
  • nodemonを使ってサーバー開発を効率的に進めることが出来るようになる

それでは以下の内容で話を進めていきます。

今回の内容
  1. 【nodemonなし】コードを修正したら、手動でサーバーを再起動する必要がある
  2. 【nodemonあり】コードを修正したら、自動でサーバーが再起動される

【nodemonなし】コードを修正したら、手動でサーバーを再起動する必要がある

expressを使ってバックエンド開発をする際に、基本的にはローカルマシン上(=自分のパソコン上)でサーバーを起動しながら開発を進めることになります。

しかし、サーバー起動中に実装・修正したコードをサーバーに反映させるためには、サーバーを再起動する必要があります。

サーバーの再起動とは・・・

一度サーバーを止めて、再度サーバーを起動すること

なぜ、サーバー起動中に実装・修正したコードをサーバーに反映させるのにわざわざ再起動する必要があるのでしょうか?

理由は、サーバーを起動した時点でのコードをメモリ上に読み込んで、サーバーが停止するまで、メモリ上に読み込んだコードを利用するからです。

つまり、一度サーバーを起動すると、その時点でのコードを利用し続けるため、サーバー起動中にコードを追加・修正したとしても、新しいコード(=追加・修正したコード)は利用されないのです。

そのため、新しいコードをサーバーに反映させたい場合は、一度サーバーを止めて、再度サーバーを起動して、その時点の最新コードをメモリに読み込ませてあげる必要があるのです。

しかし、毎回コードを変更するたびにサーバーを手動で再起動するのは面倒な作業です。

そこで、その面倒な作業をもっと効率的にする方法、つまり手動ではなく、自動でサーバーを再起動する方法として「nodemon」を導入すると良いです。

【nodemonあり】コードを修正したら、自動でサーバーが再起動される

nodemonはファイル変更を検知して、再実行するツール

nodemon」はファイルに変更があると、実行したJavaScriptファイルを自動で再実行するツールとなります。

つまり、expressを使ったサーバー開発の場面では、サーバーを自動で再起動するということになります。

nodemonはnpmでインストールする

expressや他のJavaScriptライブラリを導入する方法と同じように「npm install」を使ってインストールできます。

そして、nodemonは開発時時にのみ利用するのが一般的なので、本番環境では基本的には使いません。

つまり、npmでインストールする際には「-D」オプションを付けてpackage.json内の「devDependencies」の方に依存ライブラリ情報を追記します。

以下の画像は「npm install -D nodemon」を実行してnodemonをdevDependenciesに追加しながらインストールした様子をあらわしたものです。(※画像をクリックすると別タブで画像が開きます)

nodemonをdevDependenciesに追加nodemonをdevDependenciesに追加

「npm start」で起動できるようにすると楽

npmでローカルプロジェクトにインストールしたツールを使う方法は色々ありますが、一番楽な方法は「npm start」で実行できるようにすることです。

「npm start」で実行できるようにするためには、package.jsonのscriptsの中に「“start”: “nodemon app.js”」を追加すれば良いです。

以下の画像は実際に「npm start」で実行できるようにpackage.jsonを修正したものになります。(※画像をクリックすると別タブで画像が開きます)

「npm start」でnodemonを使ってサーバー起動した様子「npm start」でnodemonを使ってサーバー起動した様子

まとめ

今回の話をまとめると次のとおりです。

今回のまとめ
  • サーバー起動中にコードに変更があった場合、サーバーを再起動しないと変更分が反映されない
  • nodemonを使うことで、ファイルに変更があるたびに自動でサーバーを再起動出来る
  • nodemonを使わない場合、毎回手動でサーバーを再起動する必要がある

今回の内容は以下の記事内のスライドの補足資料として作成しました。スライドの全部を確認したい方は以下の記事も参照して頂けたらと思います。

あわせて読みたい
nodemonの導入【コード修正時にサーバーを自動で再起動する】今回はnodemonについて学習します。nodemonはexpressの機能ではありませんが、nodemonを使うことで効率よく開発できるようになります。通常はサーバー起動時にコードを修正すると手動でサーバーを再起動して修正を反映させる必要がありますが、nodemonを使うことでサーバーの再起動を自動化できます。...
【3つの特典付き】Webエンジニアに必要な基礎スキルを体系的に効率良く身につけたいですか?

LINE登録で無料特典を受け取る

次のような方向けに、学習をサポートするコンテンツを無料プレゼントしています。

  • Webエンジニアになりたいけど何から学習を始めれば良いかわからない
  • 今まで独学で頑張ってきたけど、独学に限界を感じてきた
  • プログラミングは出来るけど、大きめのコードが書けない

「プレゼント詳細が知りたい」「プレゼントを受け取りたい」といった方は、以下のボタンをクリックして詳細ページをご確認ください。

無料特典を受け取る

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です