gulp.series () не может запустить функцию обратного вызова - PullRequest
0 голосов
/ 11 июня 2019

Я следовал учебнику по gulp, но похоже, что он использует gulp ^ 3.9.1, поэтому я подумал о переходе на gulp ^ 4.0 Теперь возникает проблема, когда я конвертирую gulp.start() в gulp.series().

Вот оригинальный код:

gulp.task("test", function(){
   console.log("a test task"); 
});
gulp.task('watch', function(){
    watch('./app/index.html', function(){
        gulp.start('test');
    });
});

И вот что я сделал:

gulp.task('test', (done)=>{
    console.log('Well done.');
    done();
});

gulp.task('watch', function(done){
    watch('./app/index.html', function(){
        gulp.series('test', function(error){   //I use callback function since gulp.series() can take multiple tasks
            if(error){
                console.log('error');
            }
            else{
                console.log('congratulations!');
            }
        });
    });
    done();
});

Когда я делаю изменения в HTML-файле, ответа нет.Но это становится интересным, когда (согласно ответу на StackOverflow) я помещаю функцию обратного вызова в отдельный набор скобок, например:

gulp.task('watch', function(done){
    watch('./app/index.html', function(){
        gulp.series('test') (function(error){
            if(error){
                console.log('error');
            }
            else{
                console.log('congratulations!');
            }
        });
    });
    done();
});

И вдруг это работает.Ответ от stackoverflow не объясняет почему, и я не могу комментировать из-за низкой репутации.

Буду признателен, если кто-нибудь сможет объяснить, что происходит?

...