Запуск задачи 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'?
    });
})

person Takeshi Tokugawa YD    schedule 14.07.2018    source источник
comment
Это очень просто с именами функций - в вашем нежелательном camelCase или подобном. Почему ты не хочешь их использовать?   -  person Mark    schedule 14.07.2018
comment
@Mark, из-за удобочитаемости. Верблюжий случай предназначен для машины, но я хочу, чтобы все имена задач были для человека. Современная IDE умеет автоматически создавать список gulp-задач, так что верблюжий случай будет неестественным. Можете ли вы изобразить строку меню вашего программного обеспечения с элементами меню в верблюжьем корпусе? ... однако я могу принять решение с псевдонимами.   -  person Takeshi Tokugawa YD    schedule 15.07.2018


Ответы (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();
    });
}

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

person Mark    schedule 15.07.2018