Gulp错误:任务完成回调调用次数过多

时间:2017-03-03 08:33:54

标签: angular gulp

我有:

gulp.task("remove:tsConfigs", function (cb) {
    rimraf('./wwwroot/js/ng2-toastr/tsconfig.json', cb);
    rimraf('./wwwroot/js/reflect-metadata/tsconfig.json', cb);
});

我的任务完成回调被调用了太多次

我看到几篇帖子说这是异步问题。我不知道如何修复它

提前致谢

1 个答案:

答案 0 :(得分:1)

两条rimraf行中的每一行都会调用cb回调。但是,您只能拨打cb一次。

您必须使用嵌套回调,以便仅在cb执行完成后调用rimraf

gulp.task("remove:tsConfigs", function (cb) {
    rimraf('./wwwroot/js/ng2-toastr/tsconfig.json', function() {
       rimraf('./wwwroot/js/reflect-metadata/tsconfig.json', cb);
    });
});

老实说,我建议改用del。这是rimraf的公认承诺包装,这意味着您根本不需要处理回调,它允许您一次删除多个文件/文件夹:

var del = require('del');

gulp.task("remove:tsConfigs", function () {
    return del(['./wwwroot/js/ng2-toastr/tsconfig.json',
                './wwwroot/js/reflect-metadata/tsconfig.json']);
});