2015-04-24 28 views
0

我正在使用gulp快速連接一堆sql文件在一起(不要問)。如何讓Gulp處理兩次相同的文件?

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')) 
 
});

我的問題是,大口只處理GenericHeader.sql文件一次,而忽略它的第二次出現。

有沒有辦法來覆蓋默認行爲,並使吞嚥包括GenericHeader.sql第二次?

+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')); 
}); 

有了你不多個文件傳遞給你的進程(這將無法正常工作),但多流(這是不同的)

+0

賓果。這工作,並提供了很好的清晰文件如何在邏輯上組合在一起,謝謝! – j3r3m7

相關問題