Gulp series
Введение | |
Пример | |
Связанные ошибки |
Введение
Это небольшая статья про использование Gulp series и Gulp parallel.
Подробное руководство по Gulp
Вы найдете в статье Самоучитель Gulp
series и parallel пришли на замену gulp.start с появлением Gulp 4.0
Приведу наглядный пример их использование
Пример
Напишем две функции, которые просто выводят console.log и сделаем их последовательный экспорт
const gulp = require('gulp'),
{ series } = require('gulp');
function test1 (cb) {
console.log('test1');
cb();
}
function test2(cb) {
console.log('test2');
cb();
}
exports.test1 = test1;
exports.test2 = test2;
exports.test3 = series(test1 ,test2);
gulp test3
[20:46:36] Using gulpfile ~\Desktop\Sites\heihei\gulpfile.js
[20:46:36] Starting 'test3'...
[20:46:36] Starting 'test1'...
test1
[20:46:36] Finished 'test1' after 710 μs
[20:46:36] Starting 'test2'...
test2
[20:46:36] Finished 'test2' after 222 μs
[20:46:36] Finished 'test3' after 3.5 ms
Видно, что сперва запускается test1 а после неё test2
Ошибки
Error - Task function must be specified
Скорее всего эта ошибка появилась когда Вы, используя Gulp 4 и выше, задавали очередность выполнения тасков «по-старинке» используя синтаксис вроде
gulp.task('task2', ['task1'], function() {
gulp.watch("./css/**/*.css", ['css']);
});
gulp.task('task1', function() {
return gulp.src('./css/**/*.css')
.pipe(postcss(…))
.pipe(gulp.dest('.dest'));
});
В Gulp 4 для решения этой задачи нужно воспользоваться series или parallel
gulp.task('task2', function() {
gulp.watch("./app/**/*.css", series(task1))
console.log('MY_LOG: task2 is running');
});
function task1() {
console.log('MY_LOG: task1 function is running');
return gulp.src('./app/assets/**/*.css')
.pipe(Какое-то задание для Gulp)
.pipe(gulp.dest('./dest'));
};
exports.task1 = task1;