Выполнить задание gulp в обратном вызове chokidar.on()

Задача "Копировать изображения" копирует ВСЕ файлы изображений при первом запуске. Затем задача "Смотреть исходные файлы" просматривает исходную папку изображений и imagesWatcher.on('add) перехватывает добавленные файлы. Как я могу вызвать 'Копировать изображения' из обратного вызова 'wathcer.on()'?

Обратите внимание, что имя задачи gulp в случае верблюда является нежелательным ограничением. я знаю это gulp.run был удален в gulp4, однако здесь это может быть очень удобно.

gulp.task('Copy images', () => {
   // ...
})

gulp.task('Watch source files, () => {

    let imagesWatcher = gulp.watch('src/images/**/*.*');
    watcher.on('add', function(path, stats) {
        // How to call 'Copy images'?
    });
})

1 ответ

Просто сделайте вашу задачу "Копировать изображения" в функцию (это особенно приятно в gulp4) так:

function Copy_Images() {
  return gulp.src(paths.images.src)
    .pipe(newer(paths.images.dist))
    .pipe(gulp.dest(paths.images.dist));
}

function Watch_Source_Files() {
    let imagesWatcher = gulp.watch('src/images/**/*.*');
    watcher.on('add', function(path, stats) {
        // How to call 'Copy images'?
        Copy_Images();
    });
}

Это так просто с именами функций. Не уверен, что вы подразумеваете под "решением с псевдонимами" в этом контексте.

Другие вопросы по тегам