0

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

私が抱えている問題は、gulp が GenericHeader.sql ファイルを 1 回だけ処理し、2 回目の出現でそれを無視することです。

デフォルトの動作をオーバーライドして、gulp に GenericHeader.sql をもう一度含める方法はありますか?

4

1 に答える 1

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

これにより、プロセスに複数のファイルを渡すのではなく (これは機能しません)、複数のストリーム (異なるもの) を渡します。

于 2015-04-24T12:07:34.027 に答える