Подтвердить что ты не робот

Gulp не копирует все файлы, как ожидалось

Я попытался создать gulpfile.js для моего личного проекта веб-сайта. Я никогда не делал этого раньше, но с небольшим "пробником и ошибкой" он теперь работает приемлемым способом.

Единственное, что не работает даже после 1000 модификаций, - это простое копирование файлов и папок.

var files = {
  data_src : [
    './files.json',
    'data/**/*.*'
  ],
  distribution_dest : '_distribution'
};

gulp.task('copy-data', function() {
  gulp.src(files.data_src, { base: './' })
    .pipe(gulp.dest(files.distribution_dest))
    .pipe(notify({message: 'Data copied for distribution!'}));
});

Это должно скопировать все подпапки и файлы в gulp.dest. Но он копирует только половину из них, некоторые папки будут проигнорированы, даже если я изменю их имена и т.д. (Никаких специальных символов, такой же структуры вложенных папок, как тот, который был скопирован правильно...) - ничего не получилось. Я просто не вижу в этом никакого шаблона.

Во время работы gulp нет сообщения об ошибке. Ничего, что могло бы помочь мне найти ошибку.

Почему некоторые копии или файлы исключены из копирования?


Я использую base для сохранения структуры папки/подпапки; пробовал с и без "базы" → никаких эффектов на процесс копирования.

Я также изменил положение задачи "копии-данные" в списке. На самом деле это первая задача для запуска. Кажется, что никаких изменений в поведении не происходит, если это первый или последний.

gulp.task('default', function() {
  gulp.run('copy-data', 'custom-sass', 'framework-sass', 'custom-js', 'framework-js', 'replace-tags', 'browser-sync');
    ... some watches ...
});

Структура папки данных выглядит следующим образом:

./data
   |-doc
   |---content
   |---template
   |-img
   |---chart
   |---icon
   |---logo
   |---pattern
   |---people
   |---photo
   |---symbol
   |-----brandklassen
   |-----brandschutzzeichen
   |-----gebotszeichen
   |-----gefahrensymbole
   |-----rettungszeichen
   |-----verbotszeichen
   |-----verkehrsrechtzeichen
   |-----warnzeichen
   |---wallpaper

/data/doc, и все подпапки в порядке.
/data/img/chart до /data/img/people также в порядке.

Внутри /data/img/photo копируется только 14 из 21 изображений.
/data/img/symbol с подпапками и /data/img/wallpaper полностью игнорировались.

4b9b3361

Ответ 1

РЕШАЕМ ЭТО СЕБЯ! Проблема была вызвана операционными задачами async. Добавление return принудительно gulp для завершения процесса копирования до продолжения!

gulp.task('copy-data', function() {
    return gulp.src(files.data_src, { base: './' })
    .pipe(gulp.dest(files.distribution_dest))
    .pipe(notify({message: 'Data copied for distribution!'}))
});

Теперь все изображения будут скопированы!