【问题标题】:Gulp Watch Not Watching ContinuouslyGulp Watch 不连续观看
【发布时间】:2018-12-19 18:12:54
【问题描述】:

这是我的 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 只运行一次,不会持续寻找更新。我之前在其他项目中使用过完全相同的代码,所以对我做错了什么感到困惑。

GULP 版本:3.3.4

【问题讨论】:

    标签: gulp watch


    【解决方案1】:

    您需要在 gulp “监视”任务中使用 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。

    【讨论】:

    • 谢谢!回复:gulp-plumber——你为什么要防止管道因错误而破裂?它表明你做错了什么,不是吗?
    • gulp-plumber 将在不破坏管道的情况下记录错误,并且由于您正在运行 gulp-watch,一旦您修复了错误,gulp 将自行重启,无需每次在终端上运行 gulp一旦发生故障。此外,gulp-plumber 可以扩展为see this post 和this gulp-plumber-notify plugin。节日快乐??☃️☃️!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2019-07-22
    • 2019-09-18
    • 1970-01-01
    相关资源
    最近更新 更多