如何在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')); })
它不像你想要的那么漂亮,但是它没有太多额外的软件包。