基本上,我将任务分成两部分。首先是发展。没有什么魔力,只是基本的东西才能让它发挥作用。它快速而且很棒。后者用于生产。它很慢,我只想定期运行它进行测试,调试,优化和生产。因此,它们是两个独立的任务。
后者,生产任务,确实依赖于前一个任务,但是,我想继续这个流,好像后一个任务是对前者的补充。
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')
方法会返回一个流,但不幸的是它没有。许多模块确实允许你摆弄流,但它们都不会像流一样返回gulp任务。
做什么?
答案 0 :(得分:3)
最有可能被认为是最佳实践的一件事是将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'));
});
您需要的软件包:gulp-util
用于noop任务,参数解析
使用gulp styles --production
(未经测试,但你明白了)