以下のように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でも使われているようなので同じ問題があるかもしれませんね。