Привет
В gulp использую
streamqueue
для формирования продакшн-css из vendor'ских стилей и своих scss.
Так как это повторяющееся задание в
watch
, то
plumber
использовать хочу для завершения одного цикла задачи в случае ошибки конвертации scss, и продолжить смотреть далее на изменения, и снова пробовать генерить.
Вообщем обрывается исполнение
watch
при использовании именно sass конвертации. Когда использую конвертацию из pug/jade - всё нормально - выполниние таска не прерывается, а обработчик ошибки пишет в чём косяк.
Фишки, типа,
this.emit('end')
в обработчике ошибки - тоже без эффекта. Как и
on('error', callback)
на sass().
Подскажите решение, плиз.
gulp.task('fincss', function () {
watch([workData.sassSrcFiles, workData.cssVendorSrcFiles], {}, function () {
var convertFromScssToCssAndConcat =
gulp.src(workData.sassSrcFiles)
.pipe(plumber(error))
.pipe(sass());
var minifyAndConcatExistingCss =
gulp.src(workData.cssVendorSrcFiles)
.pipe(plumber(error));
return sq({objectMode: true}, minifyAndConcatExistingCss, convertFromScssToCssAndConcat)
.pipe(concat('final.min.css'))
.pipe(uglifycss())
.pipe(gulp.dest(workData.cssDest))
.pipe(livereload());
});
});
var error = function (e) {
console.error('Error in plugin "' + e.plugin + '"');
console.error(' "' + e.message + '"');
console.error(' In file "' + e.fileName + '", line "' + e.lineNumber + '".');
console.log('--------------------------------------');
console.log(e);
};
Это работает:
gulp.task('toHtml', function () {
watch(workData.pugSrcFiles, {}, function (e) {
message('Start generating template.');
gulp.src([workData.pugSrcFiles, '!' + workData.pugSrc + '_*.pug'])
.pipe(plumber(error))
.pipe(pug({pretty: true}))
.pipe(gulp.dest(pubDir))
.pipe(livereload());
});
});