Gulp series

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;

Автор статьи: Андрей Олегович