Я разрабатываю машинопись проект со следующим построением этапов:Глоток часы прекращает или строит всю задачу цепочке
- линта
- сборка
- тест
Я использую Gulp 4.0 как инструмент сборки, и хотите иметь задачу просмотра, которая должна инициировать тест (что означает, что ранее выполнялись задачи линт и сборки). В настоящее время, когда возникает ошибка (например, ошибка lint), задача просмотра завершается.
Эта проблема хорошо известна и проста в разрешении. Типичным решением является: a) предотвращение ошибок или b) исправление поведения трубы.
а) Для gulp-tslint я мог бы использовать этот конфиг из своей домашней страницы:
gulp.task("invalid-noemit",() =>
gulp.src("input.ts")
.pipe(tslint())
.pipe(tslint.report("prose", {
emitError: false
}))
);
Но когда я включаю emitError
флаг ошибка ворса регистрируется и все следующие задачи глотка выполняется (сборка, испытание) ,
b) Я мог бы также использовать gulp-plumber
или вручную улавливать ошибки (см. here), но для всех этих известных решений одинаковое поведение, выполняются следующие задачи gulp (сборка, тестирование).
Что я хочу, так это то, что цепочка задач останавливается после ошибки (без сборки и теста после ошибки lint), но задача watch никогда не должна останавливаться. Как я могу это решить? Задачи Watcher выглядеть следующим образом:
// watcher
gulp.task('watch', gulp.series('test', function doWatch() {
gulp.watch([
config.paths.sourcePattern,
config.paths.testPattern,
'gulpfile.js'
], gulp.parallel('test'));
}));
Вы можете найти полный gulpfile.js
here.
Не могли бы вы опубликовать ваши часы задачу? –
Я обновил вопрос с задачей часов. – ChrLipp
- это то же самое, если вы используете gulp.series ('lint', 'build', 'test') для задачи просмотра, а не напрямую для других? – YOU