Как запустить задачу gulp из другой задачи gulp после того, как gulp.start устарела в gulp V4? - PullRequest
0 голосов
/ 22 июня 2019

Мне нужно создать задачу gulp под названием «watch», чтобы наблюдать изменения в файле index.html и запустить другую задачу gulp, называемую «html», когда изменения вносятся в index.html. Согласно учебнику, которому я следую, это должно быть сделано так:

gulp.task('watch', function(){
    watch('app/index.html', function() {
        gulp.start('html');
    });
});

Но он возвращает мне сообщения об ошибках, потому что gulp.start устарел в gulp v4. Я испробовал несколько решений с использованием последовательных и параллельных методов, но, если честно, я совсем не понимаю этих решений и не получил никаких результатов, используя это. Может кто-нибудь показать мне, как это сделать на моем простом примере?

1 Ответ

0 голосов
/ 23 июня 2019

Gulp задачи теперь простые функции.Нет необходимости определять задачу через gulp.task(), вы можете просто определить функцию:

function html(cb) {
    // Do something
    cb()
}

Теперь ссылка на функцию html может использоваться в качестве задачи:

function watch() {
    return gulp.watch('app/index.html', html)
}

Обратите внимание, что задачи, определенные как простые функции, считаются частными задачами, их нельзя вызывать с помощью gulp <task>.Чтобы это работало, вам нужно сделать их общедоступными , экспортировав их:

exports.html = html
exports.watch = watch

Итак, для вашего конкретного случая использования вам не понадобятся series и parallel,Однако вы можете передавать им задачи (ссылки на функции) таким же образом, чтобы создавать другие задачи:

exports.rebuild = gulp.series(clean, build)
...