问题
示例代码
gulp.task("sass", function () {
return gulp.src("./Style/JS/**/*.scss")
.pipe(sourcemaps.init())
.pipe(sass({
"outputStyle": "compressed"
}).on("error", sass.logError))
.pipe(autoprefixer({browsers: ['last 8 versions']}))
//.pipe(minifyCss())
.pipe(sourcemaps.write("./"))
.pipe(gulp.dest("./Style/JS/"))
});
gulp.task("sass-watch",function(){
gulp.watch("./Style/JS/**/*.scss", ["sass"]);
});
描述
如上方代码中,watch任务,监听了./Style/JS/
目录下的scss文件,但当JS目录中无任何scss文件时开启任务,则之后的监听文件add
、change
事件都不会触发。
该如何解决这个问题?
使用版本
node: V4.2.4
gulp: V3.9.0
回复回答
经测试,当监听目录为空文件夹,即使监听路径去除了./
改为Style/JS/**/*.scss
,依然会发生这个问题。
同时也测试了使用绝对地址
监听路径,也会发生这个问题。
Gulp4.0的
watch
事件基于chokidar
模块,将Gulp升级为4.0后,修复此问题。