Gulp手表不连续观看

时间:2018-12-18 18:40:39

标签: gulp watch

这是我的Gulp设置:

var gulp = require('gulp');
// ALLOWS FOR SASS
var sass = require('gulp-sass');
// WATCHES FOR CHANGES
var watch = require('gulp-watch');
// MINIFIES CSS
var cleanCSS = require('gulp-clean-css');
// MERGES CSS FILES INTO ONE
var concat = require('gulp-concat');

// GULP WATCH
gulp.task('watch', function() {
   gulp.watch('wp-content/themes/nss/assets/**/*.sass', ['sass']);
});

// GULP SASS CONVERTER
gulp.task('sass', function(){
  return gulp.src('wp-content/themes/nss/assets/sass/style.sass')
    .pipe(sass()) // Converts Sass to CSS with gulp-sass
    .pipe(cleanCSS())
    .pipe(concat('style.min.css'))
    .pipe(gulp.dest('wp-content/themes/nss/assets/css'));
});

gulp.task('default', ['sass','watch']);

我的问题: Gulp Watch仅运行一次,并且不会持续寻找更新。我之前在其他项目上使用了完全相同的代码,因此对于我做错了什么感到困惑。

普通版:3.3.4

1 个答案:

答案 0 :(得分:1)

在您的“监视”任务中需要一个return

  

如果不返回流,则每个任务的调用者或任何相关任务都将不等待异步结果。

引自this awesome answer here.

对代码的一些修正。

// GULP WATCH
gulp.task('watch', function() {
   return gulp.watch('wp-content/themes/nss/assets/**/*.sass', ['sass']);
});

那样就可以。

我已经读到,也建议将gulp-plumber用作it prevents pipe breaking on errors