【问题标题】:Error: task completion callback called too many times错误:任务完成回调调用了太多次
【发布时间】:2016-11-08 15:11:15
【问题描述】:

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

问题是我收到错误:Error: task completion callback called too many times。哪个是正确的,但我想如何管理呢?

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

【问题讨论】:

  • 请您完整发布您的 gulpfile.js,我可以在本地运行并为您发布解决方案:)

标签: javascript gulp


【解决方案1】:

添加一些计数器(例如remains)来跟踪完整性:

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

处理我为您保留的错误。

【讨论】:

  • 我想到了这个解决方案。我想我会去的,这太糟糕了,没有“gulp解决方案”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 2015-05-13
  • 1970-01-01
  • 2021-02-05
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多