如何在 gulp 中拆分流

How to split a stream in gulp

基本上我有一组使用 markdown 处理的文件,而不是。完成这个初始处理后,我想将流分成两部分:

  1. 首先,1..1 映射和布局等额外处理
  2. 其次,将所有文件映射到一个,如索引,没有上面应用的布局

可以将流保存到变量中并保持管道吗?这是我当前的任务:

gulp.task('default', function() {
    var entries = gulp.src('./log/*.md')
        .pipe(frontMatter())
        .pipe(markdown());

    var templated = entries
        .pipe(applyTemplate())
        .pipe(gulp.dest('./build/log'));

    var index = entries
        .pipe(index())
        .pipe(applyIndexTemplate())
        .pipe(gulp.dest('./build'));

    return merge(templated, index);
}

我可以使用 lazypipe and/or 多次构建管道,但还有其他方法吗?

根据Node.js docs,"multiple destinations can be piped to safely"和原来的例子是正确的:

var entries = gulp.src('./log/*.md')
    .pipe(frontMatter())
    .pipe(markdown());

var templated = entries
    .pipe(applyTemplate())
    .pipe(gulp.dest('./build/log'));

var index = entries
    .pipe(index())
    .pipe(applyIndexTemplate())
    .pipe(gulp.dest('./build'));

return merge(templated, index);
var gulpClone = require("gulp-clone");
var eventStream = require('event-stream');

var entries = gulp.src('./log/*.md')
    .pipe(frontMatter())
    .pipe(markdown());

var templated = entries
    .pipe(gulpClone())
    .pipe(applyTemplate())
    .pipe(gulp.dest('./build/log'));

var index = entries
    .pipe(gulpClone())
    .pipe(index())
    .pipe(applyIndexTemplate())
    .pipe(gulp.dest('./build'));

return eventStream.merge(templated, index);