zukucode
主にWEB関連の情報を技術メモとして発信しています。

Linuxでファイルの監視(watch)が動作しないときの対処法

Linuxでファイルの監視(watch)が動作しないときの対処法です。

現象

Linuxを新しくインストールして、webpackの自動リロードHot Module ReplacementHMR)の設定をしたのですが、ファイルを変更しても自動ビルドが行われず、画面も何も変化しない状況が発生しました。

HMRの設定はVue.js webpackでHot Module Replacementを行うと同じ方法で行いました。

また、Electron VueElectronの開発環境をインストールしたのですが、こちらもファイルを変更しても自動ビルドが行われませんでした。

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

Electronwebpack-dev-serverの設定が悪いのかと思って1日以上時間を費やしてしまいましたが、Linuxの設定が原因だったようです。

一見エラーが何も表示されないので、ハマってしまいました。


関連記事

  • Linuxでファイルの監視(watch)が動作しないときの対処法

    Linuxでファイルの監視(watch)が動作しないときの対処法です。Electronやwebpack-dev-serverの設定が悪いのかと思って1日以上時間を費やしてしまいましたが、Linuxの設...


  • Electronとwebpackでfsモジュールを扱う

    Electronでデスクトップアプリを開発時、JavaScriptでfsモジュールをimportしてwebpackを使ってビルドするとエラーになってしまいます。Electronで開発するときはwebp...


  • vueファイル(単一ファイルコンポーネント)をwebpackでビルド

    vueファイル(単一ファイルコンポーネント)をwebpackでビルドする手順を紹介します。バージョンは、Vue.jsは2.x、webpackは2.xです。わかりやすくするため、空のプロジェクトから出来...


  • webpack モジュールのパスを絶対パスで指定する方法

    自分で作成したモジュールをインポートするときはインポートするファイルを基準に相対パスで指定する必要があります。フォルダ構成によっては深く階層を辿らないといけないので、フォルダ構成が変わってしまうと大変...


  • webpack lessをImportしてビルドする

    htmlやbodyなどに適用するベースのクラスを外部のlessファイルに実装して、スタイルをサイト全体に適用したい場合があります。外部のlessファイルをモジュールとしてImportしてwebpack...


  • Vue.js lessで外部のlessファイルをImportする

    メインカラーなどの共通情報は外部のlessファイルに記載し、各vueファイルではそのlessファイルをImportして実装するのが効率的です。.vueファイル内のlessで外部のlessファイルをIm...


  • Vue.js webpackでHot Module Replacementを行う

    開発を効率化するために、Hot Module Replacement(HMR)の設定を行います。Hot Module Replacementを設定しておけば、ブラウザの再読込は行わず、修正した箇所のみ...


  • Electronとvue-routerを併用するときの注意点

    Electronとvue-routerを使うときに、ページ制御がうまく行かないときはrouterの設定を確認します。modeがhistoryになっているとなぜかうまく行かなかったのでhashに変更しま...


  • ExtractTextPluginでcssファイルを出力する

    webpackのプラグインExtractTextPluginを使って、ビルドされたjsファイルからstyleの部分を抽出してcssファイルで出力します。extract-text-webpack-plu...


  • webpack postcssを導入する

    webpackでpostcssを導入してautoprefixerなどを行います。postcss-loaderはwebpackでpostcssを行うために必要です。postcssの設定ファイルを作成しま...