小ネタ。
問題
webpack
の--watch
や、webpack-dev-server
を使ってHot Reload
やHot Module Replacement
をしている際、変更を保存をした直後にリロードをしてくれませんでした。
何故かウィンドウを切り替えると変更が検知され、正常に動作します。
原因
Webpackの設定を色々見直していましたが、原因はエディター側にありました。
つまり検知していないわけではなく、そもそも変更が書き込まれていなかったわけです。
JetbrainsのIDE(IntelliJ、RubyMine、Webstormなど)では、デフォルトで safe write が有効になっています。
設定の「Appearance & Behavior」 →「System Settings」、「Synchronization」内の「Use "safe write"...」で確認できます。
これはファイルの破損を防ぐため、一旦一時ファイルに変更を書き出し、ウィンドウを切り替えた際に書き出してくれる仕組みです。
これを切ると、変更してすぐにビルドが走るようになりました。
普通は問題ないですが、破損しやすくなった場合は元に戻しましょう。