如何让Gulp处理两次相同的文件?

时间:2015-04-24 11:06:48

标签: gulp gulp-concat

我使用gulp快速连接一堆sql文件(不要问)。



gulp.task('sqlConcat', ['copy'], function () {
    var sqlFiles = [
        'GenericHeader.sql',
        'Sql1.sql',
        'GenericHeader.sql',
        'Sql2.sql',
        'Sql3.sql'
    ];
    gulp.src(sqlFiles)
        .pipe(wrap('-- \n-- <%= file.relative %> \n-- \n\n<%= contents %>'))
        .pipe(concat('ConcatenatedSql.sql'))
        .pipe(gulp.dest('release'))
});
&#13;
&#13;
&#13;

我遇到的问题是gulp只处理GenericHeader.sql文件一次,并在第二次出现时忽略它。

有没有办法覆盖默认行为并让gulp第二次包含GenericHeader.sql?

1 个答案:

答案 0 :(得分:0)

您可以使用包含合并的流队列:

var gulp = require('gulp');
var concat = require('gulp-concat');
var wrap = require('gulp-wrap');
var merge = require('merge2');

gulp.task('default', function() {
    return merge(
        gulp.src(['GenericHeader.sql', 'Sql1.sql']),
        gulp.src(['GenericHeader.sql', 'Sql2.sql', 'Sql3.sql'])
    )
    .pipe(wrap('<%= contents %>'))
    .pipe(concat('concat.sql'))
    .pipe(gulp.dest('dest'));
});

这样你就不会将多个文件传递给你的进程(它不会工作),而是多个流(不同的)