如何在Gulp任务中为多个pipe道创build外观

我在我的gulpfile.js中有以下任务:

gulp.task('css', function() { return gulp.src('theme.scss') .pipe(...) .pipe(...) .pipe(...) .pipe(...) .pipe(...) .pipe(...) .pipe(gulp.dest('dist')); }); 

我想将所有这些pipe道移动到一个模块,以获得类似的东西:

 gulp.task('css', function() { return gulp.src('theme.scss') .pipe(theme()) .pipe(gulp.dest('dist')); }); 

可能吗?

我用lazypipe做了,我的单独的模块已经以这种方式实现:

 module.exports = function () { var pipes = lazypipe() .pipe(...) .pipe(...) .pipe(...) .pipe(...) .pipe(...) .pipe(...); return pipes(); }; 

我想象的最简单的方法是这样的:

 function theme(stream) { return stream.pipe(less()) .pipe(minify()) .pipe(prefix()) } gulp.task('less', function() { return theme(gulp.src('theme.less')) .pipe(gulp.dest('public')); }) 

(用LESS完成,b / c gulp-ruby-sass现在有了一些新的界面)。 如果你想变得灵活一点,你可以在主题函数中尽可能多地调用:

 function theme(stream) { return stream.pipe(minify()) .pipe(prefix()) } gulp.task('less', function() { return theme(gulp.src('theme.less').pipe(less())) .pipe(gulp.dest('public')); }) 

它不像你想要的那么漂亮,但是它没有太多额外的软件包。