nodemon
は.js
ファイルを監視実行する以外にも使えますよという内容。
サンプル的なコードはこちら。
https://github.com/gcoka/scss-practice
背景
sassの練習をしようとして、各環境を作ろうとしたのですが、
なんとなくgemのsass
を入れるのを嫌ってnode-sass
で変換させようとしました。
node-sass -o dist --output-style expanded --include-path src --watch src/test.scss
ところが、いくら--watch
オプションをつけても、最初の起動時に1度変換するだけで、ファイル変更しても一切反応してくれませんでした。--watch
にバグがあるようなissueも見かけたので、諦めてnodemon
にファイル監視させることにしました。
nodemonにファイル監視だけさせるには
--exec
オプションを使います(短いオプションは-x
)
本来の使い方は、node server.js
の代わりとしてnodemon server.js
といった具合に実行するJavaScriptを渡しますが、代わりに--exec
を渡すこともできます。今回の例だと--exec
で実行するコマンドはnode
で起動するコマンドですらありませんが、問題ありません。
package.json
に動かしたいコマンドと、監視付きのコマンドの両方を定義しましょう。
"scripts": {
"sass": "node-sass -o dist --output-style expanded --include-path src src/test.scss",
"watch:sass": "nodemon --ext scss --watch src --exec 'npm run sass'"
},
他にも
工夫次第で、開発時の自動リロードを実現するための補助として使うことが出来ます。
よくある例では、 node.js + Express
などで、 src
以下が変更されたらnpm run start
を起動し直すとか。
nodemon --ext js,jsx,scss,html --watch src -x 'npm run start'