Gulp 4 Watch Task,只运行一次

问题描述 投票:0回答:1

我无法使用Gulp 4.我的监视任务在我的html文件中检测到更改时只运行一次。

我的错误在哪里?请帮我修理我的gulpfile

这是我的代码:

var gulp            = require('gulp'),
    sass            = require('gulp-sass'),
    cleanCSS        = require('gulp-clean-css'),
    autoprefixer    = require('gulp-autoprefixer'),
    rename          = require('gulp-rename'),
    inject          = require('gulp-inject'),
    uglify          = require('gulp-uglify'),
    concat          = require('gulp-concat'),
    plumber         = require('gulp-plumber'),
    babel           = require('gulp-babel'),
    browserify      = require('gulp-browserify'),
    clean           = require('gulp-clean'),
    sourcemaps      = require('gulp-sourcemaps'),
    htmlmin         = require('gulp-html-minifier'),
    browserSync     = require('browser-sync');


var src             = './src/',
    dist            = './dist/';


//####################################
// MINIFY HTML
gulp.task('html', function(){
    gulp.src(dist + '*.html', {force: true})
        .pipe(clean());
    gulp.src(src + '*.html')
        .pipe(htmlmin({collapseWhitespace: true}))
        .pipe(gulp.dest(dist));
});

//####################################
// WATCH
gulp.task('default', function(){
    gulp.watch([src + '*.html'], gulp.series('html'));
});

当我手动运行html任务时,我收到以下警告:

The following task did not complete: html Did you forget to signal async completion?

我怎么能解决这个问题呢?

javascript gulp
1个回答
1
投票

我在html文件中解决了我的问题,代码更改:

gulp.task('html', done => {
    gulp.src(dist + '*.html', {force: true})
        .pipe(clean());
    gulp.src(src + '*.html')
        .pipe(htmlmin({collapseWhitespace: true}))
        .pipe(gulp.dest(dist));
    done();
});

Watch-Task现在可以使用了

© www.soinside.com 2019 - 2024. All rights reserved.