Linuxでファイルの監視(watch)が動作しないときの対処法
Linux
でファイルの監視(watch
)が動作しないときの対処法です。
現象
Linux
を新しくインストールして、webpack
の自動リロードHot Module Replacement
(HMR
)の設定をしたのですが、ファイルを変更しても自動ビルドが行われず、画面も何も変化しない状況が発生しました。
HMR
の設定はVue.js webpackでHot Module Replacementを行うと同じ方法で行いました。
また、Electron Vue
でElectron
の開発環境をインストールしたのですが、こちらもファイルを変更しても自動ビルドが行われませんでした。
Linux
の環境はLinux Mint 18.3 Mate
です。
対処法
参考URL:https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
監視できるファイルの数は設定ファイルに定義されているので、現在の値を確認します。
$ cat /proc/sys/fs/inotify/max_user_watches
8192
この値を増やすために以下のコマンドを実行します。
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
再度設定値を確認すると、値が変更されていることを確認できます。
$ cat /proc/sys/fs/inotify/max_user_watches
524288
Electron
やwebpack-dev-server
の設定が悪いのかと思って1日以上時間を費やしてしまいましたが、Linux
の設定が原因だったようです。
一見エラーが何も表示されないので、ハマってしまいました。