いぇいいぇい

ASP.NET、PHPを中心に書いています

gulp-watchで新規ファイルが認識しない問題が解決

以下のようにgulp-watchでファイル監視しているとき、ふと新規ファイルやリネームしたファイルが認識しないことに気づきました。

gulp.watch('./sass/**/*.scss', ['sass'])

調べて見たところ、解決策があったのでここで紹介します。

gulp-watchで新規ファイルを認識させる方法

gulp-watchではファイル監視にGazeを使っています。

Gazeでは、作業ディレクトリ(cwd)というパラメータがあります。規定値はprocess.cwd()となっており、最初の例では規定値が使われます。

どうもGazeではファイル監視に問題を抱えているようで、パラメータの指定の仕方にコツがいるようです。(参考:#41)

以下のようにcwdパラメータを指定して、監視パスから./をなくすと、新規ファイルでもうまく認識できるようになりました。

gulp.watch('sass/**/*.scss', { cwd: './' }, ['sass'])

これはGazeのバグかと思いますが、もう何年も放置されているようですね。。

GazeはGruntでも使われているようなので同じ問題があるかもしれませんね。

stackoverflow.com

github.com