Express.jsの起動はnodemonが便利

永遠

※当サイトはアフィリエイト広告を利用しています

Express.jsのバックグランド実行はforeverが便利という記事を書きました。

今回の記事ではコーディング中はnodemonというライブラリが便利なので紹介します。

コードの変更が発生すると自動的に再起動してくれるので修正を楽に確認できるようになります。

nodemonの例
写真の緑字のログrestarting due to changes…で自動で再起動がかかっています。

nodemonの使い方

Express.jsの通常の起動方法の問題点

Express4.x系では以下のように起動します。

node bin/www

ブラウザにlocalhost:3000と入力すると開発中の画面が表示されます。

コードを修正して画面の表示を確認したい場合、Ctrl+Cと再度node bin/wwwを実行してアプリケーションを再起動させる必要があります。

nodemonを使うと自動でコード修正を検知して再起動してくれるので、手動のオペレーションを短縮することができます。

nodemonのインストール

通常のnode.jsライブラリ同様にnpmを利用してインストールします。

npm install nodemon -g

通常起動時のnodeをnodemonと入力することで起動できます。

nodemon bin/www

nodemonのパラメータでは-execが便利

デフォルト設定では拡張子がjs、mjs、coffee、litcoffee、jsonのファイルが検知対象になっています。

viewにejs、jadeを利用している人は検知されるように追加しておきましょう。

起動コマンドにオプション(-execまたは-e)で指定します。

jsとejsを利用している場合は以下のように起動します。

nodemon -e js,ejs bin/www

nodemon利用時の便利な設定

起動コマンドはpackage.jsonに

毎回-eオプションで拡張子を入力するのは面倒ですよね。

package.jsonに記載しておくと便利です。

scriptsのtestのvalue部分に上記のコマンドを記載しておくことでnpm testコマンドでExpress.jsonをnodemon -eで起動することができます。

{
  "name": "shark",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "NODE_ENV=production forever start ./bin/www",
    "test": "nodemon -e ejs,js,json start ./bin/www"
  },
  "dependencies": {
    "ejs": "~2.5.7",
    "express": "^4.16.4"
  }
}

本番用途でのバックグラウンド起動はforeverで

上記の例ではscriptsのstartに本番用の起動コマンドを記載しています。

本番用サーバではnodemonではなくバックグラウンド起動できるforeverがおすすめです。

scriptsのstartを本番用途、testを開発用途にすることでnpm start、npm testの使い分けで起動コマンドを切り替えられるので便利です。

1 個のコメント

  • nodemonもforeverも-gがついているとインストールできませんでした。
    bin/wwwは何なんでしょうか?
    パスがどうのこうのと言われて実行できません。インストールしたされた場所ですか?

  • コメントを残す

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

    CAPTCHA


    ABOUT US

    ケネ
    はじめまして、ケネです。

    Node.jsの技術情報を書いています。

    一人でも多くの方と「自分でもできた」感覚を共有したいので、なるべくわかりやすく、実体験ベースでのブログを心がけています。
    技術で自分の世界を広げましょう。

    不明点や質問があればお気軽にコメントください。