Как заставить Gulp 4 не запускать одну задачу несколько раз? - PullRequest
0 голосов
/ 15 мая 2018

У меня две задачи. У них есть общая задача, которую следует выполнить перед задачами.

С Gulp 3 Я реализую их следующим образом:

gulp.task('compile', () => {
    // Compiling the TypeScript files to JavaScript and saving them on disk
});

gulp.task('test', ['compile'], () => {
    // Running tests with the compiled files
});

gulp.task('minify', ['compile'], () => {
    // Minifying the compiled files using Uglify
});

guls.task('default', ['test', 'minify']);

И когда я запускаю gulp default, задача compile запускается только 1 раз.

В Gulp 4 Я реализую их так:

gulp.task('compile', () => {
    // Compiling the TypeScript files to JavaScript and saving them on disk
});

gulp.task('test', gulp.series('compile', () => {
    // Running tests with the compiled files
}));

gulp.task('minify', gulp.series('compile', () => {
    // Minifying the compiled files using Uglify
}));

guls.task('default', gulp.parallel('test', 'minify'));

И когда я запускаю gulp default, задача compile запускается 2 раза, что нежелательно, потому что выполняется резервное задание. Как заставить задачу запускаться только 1 раз, сохраняя возможность независимо запускать задачи test и minify?

1 Ответ

0 голосов
/ 15 мая 2018

Поскольку вы пытаетесь запустить test и minify параллельно, невозможно выполнить run compile только один раз, так как это станет последовательной операцией.Вы можете сделать,

gulp.task('compile', () => {
    // Compiling the TypeScript files to JavaScript and saving them on disk
});

gulp.task('test',() => {
    // Running tests with the compiled files
}));

gulp.task('minify',=> {
    // Minifying the compiled files using Uglify
}));

gulp.task('compile-and-test', gulp.series('compile','test'));

gulp.task('compile-and-minify', gulp.series('compile','minify'));

guls.task('default', gulp.series('compile', gulp.parallel('test', 'minify'));

Этот подход позволит вам запускать отдельные операции и выполнять операции тестирования и минимизации параллельно, выполняя компиляцию только один раз.

Подробнее вы можете прочитать здесь .

...