javascript — синхронная запись файлов gulp перед переходом к следующему заданию

Заставить gulp записывать файлы синхронно, прежде чем перейти к следующему заданию

Встретил ту же проблему здесь. Допустим, есть 2 задания, первое и второе. Второй проходит после первого. Первая задача генерирует несколько файлов, которые должны быть прочитаны Второй задачей. Использование зависимости не гарантирует, что Вторая задача сможет найти сгенерированные файлы.

Я должен явно использовать обратный вызов done в конвейере, чтобы позволить Second запускаться только после первого выполнения.

 //This approach works! gulp.task('First', function(done)) { var subFolders = fs.readdirSync(somefolder)... var tasksForFolders = subFolders.map(function(folder) { return gulp.src('folder/**/*').sthtogeneratefiles(); }); tasksForFolders[tasksForFolders.length-1].on('end',done); return tasksForFolders; } gulp.task('Second', ['First'],function() { return gulp.src('generatedfolders/**/*').doth(); } 

Без done трюка Second никогда не найдет файлы, сгенерированные First. Ниже показано, что я пробовал, Вторая задача может найти файлы, сгенерированные путем вызова gulp First вручную, а затем вызова gulp Second .

 //This is the WRONG approach, just for demonstration!! gulp.task('First', function()) { var subFolders = fs.readdirSync(somefolder)... var tasksForFolders = subFolders.map(function(folder) { return gulp.src('folder/**/*').sthtogeneratefiles(); }); return tasksForFolders; } gulp.task('Second', function() { return gulp.src('generatedfolders/**/*').doth(); } 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector