Javascript 错误:调用任务完成回调的次数太多

Javascript 错误:调用任务完成回调的次数太多,javascript,gulp,Javascript,Gulp,我正在将Typescript文件编译成Javascript,从不同的源到不同的目的地。我需要知道何时完成所有编译以运行任务minifyJS 问题是我遇到了错误:error:task completion callback调用次数过多。这是对的,但我该怎么办呢 gulp.task('compileTS', function (done) { // Compile pages pump([ gulp.src(paths.componentsTS), t

我正在将Typescript文件编译成Javascript,从不同的源到不同的目的地。我需要知道何时完成所有编译以运行任务
minifyJS

问题是我遇到了错误:
error:task completion callback调用次数过多
。这是对的,但我该怎么办呢

gulp.task('compileTS', function (done) {
    // Compile pages
    pump([
        gulp.src(paths.componentsTS),
        typescript({
            target: 'ES5'
        }),
        gulp.dest(paths.dest)
    ], done);

    // Compile services
    pump([
        gulp.src(paths.servicesTS),
        typescript({
            target: 'ES5'
        }),
        gulp.dest(paths.dest + 'Services/')
    ], done);

    // Compile tests
    pump([
        gulp.src(paths.testsTS),
        typescript({
            target: 'ES5'
        }),
        gulp.dest(paths.destTestsJS)
    ], done);
});

// This task needs to be called after 'compileTS' is done
gulp.task('minifyJS', ['compileTS'], function () {
    pump([
        gulp.src([paths.dest + paths.allJS]),
        uglify(),
        rename({
            suffix: '.min'
        }),
        gulp.dest(paths.dest)
    ]);
});
添加一些计数器(例如,
剩余值
)以跟踪完整性:

gulp.task('compileTS', function (done) {
    var remains = 0;
    // Compile pages
    remains++;
    pump([
        gulp.src(paths.componentsTS),
        typescript({
            target: 'ES5'
        }),
        gulp.dest(paths.dest)
    ], completed);

    remains++;
    // Compile services
    pump([
        gulp.src(paths.servicesTS),
        typescript({
            target: 'ES5'
        }),
        gulp.dest(paths.dest + 'Services/')
    ], completed);

    remains++;
    // Compile tests
    pump([
        gulp.src(paths.testsTS),
        typescript({
            target: 'ES5'
        }),
        gulp.dest(paths.destTestsJS)
    ], completed);

    function completed () {
        if (--remains===0) {
            done(null, '');
        }
    }
});

处理我为您保留的错误。

请完整发布您的gulpfile.js,我可以在本地运行此文件并为您发布解决方案:)我想到了此解决方案。我想我会去的,这太糟糕了,没有“一饮而尽的解决办法”。