Gulp streamqueue sass水管工手表。错误打破了任务

时间:2016-08-08 16:11:32

标签: stream gulp gulp-watch gulp-sass plumber

使用Streamqueue,sass,管道工并在最后观看它时,gulp任务出现问题。 Task正在编译来自供应商css | scss文件的生产css文件和我自己的文件。

gulp.task('fincss', function () {
    watch([workData.sassSrcFiles, workData.cssVendorSrcFiles], {}, function () {
        var convertFromScssToCssAndConcat =
            gulp.src(workData.sassSrcFiles)
                .pipe(plumber(error))
                .pipe(sass());

        var minifyAndConcatExistingCss =
            gulp.src(workData.cssVendorSrcFiles)
                .pipe(plumber(error));

        return sq({objectMode: true}, minifyAndConcatExistingCss, convertFromScssToCssAndConcat)
            .pipe(concat('final.min.css'))
            .pipe(uglifycss())
            .pipe(gulp.dest(workData.cssDest))
            .pipe(livereload());
    });
});

var error = function (e) {
    console.error('Error in plugin "' + e.plugin + '"');
    console.error('   "' + e.message + '"');
    console.error('   In file "' + e.fileName + '", line "' + e.lineNumber + '".');
    console.log('--------------------------------------');
    console.log(e);
};

但是当scss文件出错然后破坏任务时。无论如何,任何在互联网上提供的水管工实验都无济于事。在concat之前插入管道工()或在错误处理程序中使用this.emit('end')之类的东西都不会做任何事情。

在我的其他任务中,如

gulp.task('toHtml', function () {
    watch(workData.pugSrcFiles, {}, function (e) {
        message('Start generating template.');
        gulp.src([workData.pugSrcFiles, '!' + workData.pugSrc + '_*.pug'])
            .pipe(plumber(error))
            .pipe(pug({pretty: true}))
            .pipe(gulp.dest(pubDir))
            .pipe(livereload());
    });
});

一切都很好,没有破坏任务。

请帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用stream-series替换streamqueue。

将您的配置文件更改为:

@MultipartConfig

});