Выпейте 4 многократных задания на одном источнике и в серии
Я редактирую свой gulpfile, как показано ниже:
gulp.task('watch', function() {
gulp.watch('**/*.html', gulp.series('htmlcomb'));
gulp.watch('css/**/*.scss', gulp.series('csscomb'));
gulp.watch('css/**/*.scss', gulp.series('cssmin'));
gulp.watch('js/**/*.js', gulp.series('jsmin'));
});
Но когда я запускаю gulp watch, он останавливается после csscomb. Когда я редактирую файл scss. Это только гребень на нем.
Я могу запустить htmlcomb, jsmin и (cssbomb + cssmin) как асинхронный. Но мне нужно запустить cssmin после csscomb.
1 ответ
Если вы хотите, чтобы csscomb запускался до cssmin, просто используйте:
gulp.task('watch', function() {
gulp.watch('**/*.html', gulp.series('htmlcomb'));
gulp.watch('css/**/*.scss', gulp.series('csscomb', 'cssmin'));
gulp.watch('js/**/*.js', gulp.series('jsmin'));
});
На самом деле, если вы используете gulp4.0, ваши функции могут иметь вид:
function csscomb() {
return gulp.src(…...)
.pipe.....)
.pipe(gulp.dest(…...));
}
поэтому ваши задачи наблюдения вызывают функции, а не задачи, и выглядят так:
gulp.task('watch', function() {
gulp.watch('**/*.html', gulp.series(htmlcomb));
gulp.watch('css/**/*.scss', gulp.series(csscomb, cssmin));
gulp.watch('js/**/*.js', gulp.series(jsmin));
});