Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/jquery-mobile/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gulp 以流的形式吞咽连续的任务_Gulp - Fatal编程技术网

Gulp 以流的形式吞咽连续的任务

Gulp 以流的形式吞咽连续的任务,gulp,Gulp,基本上,我把任务一分为二。第一是发展。没有魔法,只有基本的东西让它工作。它又快又好。后者用于生产。它很慢,我只想定期运行它进行测试、调试、优化和生产。因此,它们是两个独立的任务 后者,生产任务,确实依赖于前一个任务,但是,我想继续这个流程,就好像后一个任务是前一个任务的补充一样 gulp.task('styles', function() { return gulp.src('src/sass/**/*.scss') .pipe(sass()) .pipe

基本上,我把任务一分为二。第一是发展。没有魔法,只有基本的东西让它工作。它又快又好。后者用于生产。它很慢,我只想定期运行它进行测试、调试、优化和生产。因此,它们是两个独立的任务

后者,生产任务,确实依赖于前一个任务,但是,我想继续这个流程,就好像后一个任务是前一个任务的补充一样

gulp.task('styles', function() {
    return gulp.src('src/sass/**/*.scss')
        .pipe(sass())
        .pipe(autoprefixer())
        .pipe(gulp.dest('dist/css'));
});

gulp.task('styles-production', function() {
    return runTaskAndUseStream('styles')
         // Continue where the styles task ended
         .pipe(uncss({
             ...
         }))
         .pipe(gulp.dest('dist/css'));
});
我希望未记录的
gulp.start('task')
方法会返回一个流,但不幸的是它没有返回。许多模块确实允许您处理流,但没有一个模块将吞咽任务作为流返回

怎么办?

一件(最有可能)被认为是最佳实践的事情是将uncss任务合并到样式任务中,但仅当设置了某些标志时才运行它:

var gutil = require('gulp-util');

function production(task) {
    return (gutil.env.production ? task : gutil.noop());
}

gulp.task('styles', function() {
    return gulp.src('src/sass/**/*.scss')
        .pipe(sass())
        .pipe(autoprefixer())
        .pipe(production(uncss({

        })))
        .pipe(gulp.dest('dist/css'));
});
您需要的包:
gulputil
用于noop任务和参数解析

使用
gulp样式运行它--生产


(未经测试,但你得到了这个概念)

非常有意义,工作起来很有魅力。我的问题似乎是另一个过度复杂的情况。谢谢您可以尝试将gulp.dest提取到函数和链操作中。检查示例。