Вот составная задача, которую я не знаю, как заменить ее зависимостями задач.
...
gulp.task('watch', function () {
var server = function(){
gulp.run('jasmine');
gulp.run('embed');
};
var client = function(){
gulp.run('scripts');
gulp.run('styles');
gulp.run('copy');
gulp.run('lint');
};
gulp.watch('app/*.js', server);
gulp.watch('spec/nodejs/*.js', server);
gulp.watch('app/backend/*.js', server);
gulp.watch('src/admin/*.js', client);
gulp.watch('src/admin/*.css', client);
gulp.watch('src/geojson-index.json', function(){
gulp.run('copygeojson');
});
});
Соответствующий журнал изменений https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md#35 [исключить gulp.run]
javascript
gulp
рекламировать
источник
источник
scripts
, но также имеет смысл принудительно запустить эту задачу сразу (не дожидаясь изменения файла сценария).gulp.task('default', ['build', 'watch']);
, которая сначала создает, а затем начинает просмотр.Или можно сделать так:
источник
.start
является методом Orchestrator. Поскольку Gulp наследует от этого, он должен работать. Я запускаю задачу gulp из функции без gulp (watchify), и, похоже, это работает.gulp.start
будет удален в следующем выпуске: github.com/gulpjs/gulp/issues/505#issuecomment-45379280gulp-start
можно заменить наrun-sequence
npmjs.com/package/run-sequenceисточник: https://github.com/gulpjs/gulp/issues/755
gulp.start()
никогда не предназначался для использования в качестве общедоступного API. И, как указано выше в комментариях, в следующем выпускеgulp.start()
будет заменено управление задачами .... так что будет ломаться.Истинное намерение дизайна gulp - сделать обычные функции Javascript и сделать задачу только для их вызова.
Пример:
источник
Простите, что воскресил старый вопрос. Принятый ответ не решает проблему запуска задач до установки часов. В следующем ответе используется gulp.start, который уходит. Третий ответ указывает на то, что следует использовать обычные функции, но пример кажется странным. Я немного поискал, но не нашел простого примера.
Вот мое решение. Идея состоит в том, чтобы определить обычные js-функции, а затем зарегистрировать их как задачи. Затем функции могут быть вызваны напрямую, если это необходимо, или из часов.
Я новичок в глотке. Пожалуйста, дайте мне знать, если я пропустил что-то очевидное.
источник
gulp.watch
задачам, определенным в,watchTask()
прежде чемbuildTask()
будет подтверждено завершение? Я чувствую, что это все еще состояние гонки и не гарантирует сборку перед просмотром.глоток 4
Мне нравится gulp4!
источник
Как упоминает @dman,
gulp.start
в следующей версии он будет удален . Также это можно увидеть в этом выпуске gulp .А в комментариях к ответу @Pavel Evstigneev @joemaller упоминает, что в этом сценарии мы можем использовать run-sequence .
Но обратите внимание, что автор run-sequence говорит:
Итак, до gulp 4.0 мы можем использовать run-sequence , после 4.0 мы можем просто использовать gulp.
источник
Если вам нужно поддерживать порядок выполнения задач, вы можете определить зависимости, как описано здесь - вам просто нужно вернуть поток из зависимости:
Определите задачу, которая от этого зависит:
И используйте это с часов:
Теперь
dependecy
задача будет завершена передdepends
запуском (например, ваши задачи «жасмин» и «встраивание» будут зависимостями, и у вас будет другой «сервер» задачи, который будет зависеть от них). Никаких хаков не требуется.источник
В Gulp 4 мне кажется, что единственное, что работает, это:
источник
Чтобы запустить задачу перед началом просмотра, вместо использования gulp.run () или gulp.start () просто запустите команду gulp прямо вверх.
Так что вместо:
Просто сделать:
Или вы можете заключить этот последний код в «обычную» функцию и вызывать ее, когда захотите.
- Вдохновленный этим ответом из аналогичной ветки .
источник
Я до сих пор не понимаю, как это на самом деле решает поставленный вопрос.
Если у меня есть 4 задачи, между которыми определены зависимости
А, Б, В, D
где A зависит от B и т.д., как определено
gulp.task('A',['B'],function A(){});
а затем я определил новую задачу, используя gulp.watch, запуск только функций, дублировал бы зависимости.например, учитывая эти задачи (каждая функция задачи отображается через имя):
я могу написать 1)
который будет выполнять A-> D, но если, например, шаг B не удастся, он никогда не войдет в задачу (подумайте об ошибке компиляции или тестирования)
или я могу написать 2)
который не будет запускать A-> D, пока что-то не будет сначала изменено.
или я могу написать 3)
что может вызвать дублирование (и со временем ошибки) иерархии зависимостей.
PS: В случае, если кому-то интересно, почему я хочу, чтобы моя задача слежения выполнялась, если какая-либо из зависимых задач терпит неудачу, обычно это связано с тем, что я использую часы для разработки в реальном времени. например. Я запускаю свою задачу слежения, чтобы начать работу над тестами и т. д., и может быть, что исходный код, с которого я начинаю, уже имеет проблемы, следовательно, ошибки.
Так что я надеюсь, что gulp run или что-то подобное останется в течение некоторого времени
источник