В Gulp.js версии 4.x было сделано значительное количество изменений по сравнению с предыдущей версией. В частности, изменился подход к запуску задач внутри других задач.
Для запуска одной задачи внутри другой в Gulp 4.x вам понадобится использовать следующие концепции:
1. gulp.series
: функция, которая позволяет создавать последовательную цепочку из задач. Она принимает список задач в качестве аргументов и гарантирует, что каждая задача выполняется в указанном порядке.
2. gulp.parallel
: функция, которая позволяет создавать параллельные цепочки задач. Она также принимает список задач в качестве аргументов, но в отличие от gulp.series
выполняет их параллельно, то есть одновременно.
3. gulp.task
: функция, которая позволяет определить задачи в Gulp. Она принимает два аргумента: имя задачи и функцию, которая содержит код для выполнения задачи.
Теперь рассмотрим пример, который показывает, как можно запустить одну задачу внутри другой:
const gulp = require('gulp'); // Определяем задачу 'task1' gulp.task('task1', function(done) { console.log('Задача 1'); done(); }); // Определяем задачу 'task2', которая вызывает 'task1' gulp.task('task2', gulp.series('task1', function(done) { console.log('Задача 2, вызывающая задачу 1'); done(); })); // Определяем задачу 'default', которая вызывает 'task2' gulp.task('default', gulp.series('task2', function(done) { console.log('Задача по умолчанию, вызывающая задачу 2'); done(); }));
В приведенном примере задача 'task2' вызывает задачу 'task1' с помощью gulp.series
. А задача 'default' вызывает задачу 'task2' также с помощью gulp.series
. Таким образом, при запуске задачи 'default' будут выполнены все три задачи в указанном порядке.
Команда gulp.task('имя задачи', ...)
, используемая для определения задачи, также может быть заменена сущностью gulp.task('имя задачи', gulp.series(...))
, если вам необходимо вызвать несколько задач последовательно.
Важно отметить, что в Gulp 4.x устаревший синтаксис использования точки с запятой для определения зависимостей задач не работает. Вместо этого вы должны использовать функций gulp.series
и gulp.parallel
для определения последовательной и параллельной зависимостей соответственно.