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提取到函数和链操作中。检查示例。