Пропуск задач, перечисленных как зависимости в Gulp

Я просмотрел всю документацию и NPM, чтобы попытаться найти решение этой проблемы, но мне не повезло. Я хотел бы иметь возможность пропускать задачи, которые я перечисляю как зависимости при выполнении определенной задачи. Например, если у меня есть следующее:

gulp.task('prerun', function(){
  // do cleaning, installation, etc.
});

gulp.task('run', ['prerun'], function(){
  // do stuff
});

gulp.task('watch', function(){
  gulp.watch('glob/glob/**', ['run']);
});

Я хотел бы, чтобы мой gulp.watch выполнял run, не касаясь накладных расходов, связанных с prerun. Возможно ли это вообще в Gulp?


person nmagerko    schedule 19.08.2014    source источник


Ответы (2)


Как насчет вспомогательной задачи? Я использую этот подход для устранения любых зависимостей в моих задачах наблюдения. Ваш пример может выглядеть так:

gulp.task('prerun', function(){
    // do cleaning, installation, etc.
});

gulp.task('run', ['prerun'], function(){
    gulp.start('run-dev');
});

gulp.task('run-dev', function() {
    // do the run stuff
});

gulp.task('watch', function(){
    gulp.watch('glob/glob/**', ['run-dev']);
});

Предварительную задачу, которую вы также можете использовать в качестве зависимости для своей задачи наблюдения, если это необходимо:

gulp.task('watch', ['prerun'], function(){
    gulp.watch('glob/glob/**', ['run-dev']);
});

Чао Ральф

person RWAM    schedule 19.08.2014
comment
Я думал о том, чтобы использовать этот подход, но, насколько я понимаю, использование gulp.start не очень хорошая практика (в будущем он может быть удален). Но это значительно облегчило бы задачу! - person nmagerko; 20.08.2014

Без использования gulp.start вы можете попробовать это:

gulp.task('prerun', function(){
    // do cleaning, installation, etc.
});

// run all dependencies while keeping run-dev as a separate task
gulp.task('run', ['prerun', 'run-dev']);

gulp.task('run-dev', function() {
    // do the run stuff
});

gulp.task('watch', ['run'], function(){
    gulp.watch('glob/glob/**', ['run-dev']);
});
person Regican    schedule 08.10.2015
comment
Разве задача «запустить» здесь не будет запускать «предварительный запуск» и «запуск-разработчик» одновременно? - person tremby; 06.11.2015
comment
Да. Зависимости выполняются асинхронно. - person Ashley; 18.04.2016