55
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

nodemonをただのファイルウォッチャーとして使う

Last updated at Posted at 2017-11-16

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'"
},

これで無事、SCSSの自動変換がされるように。
image.png

他にも

工夫次第で、開発時の自動リロードを実現するための補助として使うことが出来ます。
よくある例では、 node.js + Expressなどで、 src以下が変更されたらnpm run startを起動し直すとか。

nodemon --ext js,jsx,scss,html --watch src -x 'npm run start'
55
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?