処理したい 3 つのタスクがあり、これらの 3 つのタスクが完了したら、次のことを行います。
- 3 つのファイルを連結する
 - 醜くする
 - ディスクに書き込みます
 
これGruntには長いプロセスがありました。これが私が試したものですGulp
gulp.task('libs', function () {
return gulp.src('js/libs/*.js')
        .pipe(concat('01.libs.js', {newLine: ';'}))
        .pipe(gulp.dest('min'));
});
gulp.task('plugins', function () {
    return gulp.src('js/plugins/*.js')
            .pipe(concat('02.plugins.js', {newLine: ';'}))
            .pipe(gulp.dest('min'));
});
gulp.task('apps', function () {
    return gulp.src('js/apps/**/*.js')
            .pipe(concat('03.apps.js', {newLine: ';'}))
            .pipe(gulp.dest('min'));
});
gulp.task('scripts', ['libs', 'plugins', 'apps'], function () {
    return gulp .src('min/*.js')
            .pipe(concat('testFile.js', {newLine: ';\r\n'}))
            .pipe(rename({suffix: '.min.v' + pkg.version }))
            .pipe(gulp.dest('min'))
            .pipe(notify({ message: 'Scripts minified'}));
});
これは機能しますが、3つの中間ファイルを書き出してから連結するのではなく、出力をストリーミングしたいだけです。
だから私はそれから試しました:
function libs () {
    return gulp.src('js/libs/*.js')
            .pipe(concat('01.libs.js', {newLine: ';'}));
}
function plugins () {
    return gulp.src('js/plugins/*.js')
            .pipe(concat('02.plugins.js', {newLine: ';'}));
}
function apps () {
    return gulp.src('js/apps/**/*.js')
            .pipe(concat('03.apps.js', {newLine: ';'}));
}
それで、私は次のbuildようになります:
gulp.task('build', function () {
    return libs()
        .pipe(plugins())
        .pipe(apps())
        .pipe(concat('TestFile.js', {newLine: ';\r\n'}))
        .pipe(rename({suffix: '.min.v' + pkg.version }))
        .pipe(gulp.dest('min'));
});
これは機能しません。
だから私は試しましたQ:
function allOfThem () {
    return Q.all(libs(), plugins(), apps());
}
gulp.task('build', function () {
    return allOfThem().then(function (one, two, three) {
        console.log(one, two, three);
    });
});
これは機能すると思いますが、のコールバックにデータがありませんthen。
道に迷いました。これを達成するための最良の方法は何ですか?