Как сделать пропуск ошибок в gulp?

307
05 сентября 2017, 12:12

Есть gulpfile.js, он работает хорошо, но есть одно но. При любой ошибке в less, нужно перезапускать gulp watch. Подскажите, как это исправить?

    var gulp                = require('gulp'),
    less                = require('gulp-less'), //подключаем препроцессор LESS
    browserSync         = require('browser-sync'), //Подключаем Browser Sync
    concat              = require('gulp-concat'), // Подключаем gulp-concat (для конкатенации файлов)
    uglify              = require('gulp-uglifyjs'), // Подключаем gulp-uglifyjs (для сжатия JS)
    cssnano             = require('gulp-cssnano'),  // Подключаем пакет для минификации CSS
    rename              = require('gulp-rename'); // Подключаем библиотеку для переименования файлов
    del                 = require('del'), // Подключаем библиотеку для удаления файлов и папок
    imagemin            = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями
    pngquant            = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png
    cache               = require('gulp-cache'), // Подключаем библиотеку кеширования
    autoprefixer        = require('gulp-autoprefixer'),// Подключаем библиотеку для автоматического добавления префиксов
    smartgrid           = require('smart-grid'),
    gcmq                = require('gulp-group-css-media-queries'),
    plumber             = require('gulp-plumber'),
    cleanCSS            = require('gulp-clean-css'),
    sourcemaps          = require('gulp-sourcemaps'),
    connect             = require('gulp-connect-php');

gulp.task('default',  function (){      
    console.log('Введите функцию.');
    }); 

gulp.task('connect', function(callback) {
  connect.server({
    port: 8001
  }, callback);
});

gulp.task('browser-sync', ['connect'], function(){
    browserSync({
        server: {
            baseDir: 'project'
        },
        notify: false,
    });
});
gulp.task('less', function() {
    return gulp.src('build/less/*.less')
    .pipe(plumber())
    .pipe(less())       
    .pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], { cascade: true })) //Включаем автопрефиксы
    .pipe(gcmq()) //Группируем медиазапросы
    .pipe(sourcemaps.init())
    .pipe(cleanCSS({compatibility: 'ie8'}))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('project/css')) 
    .pipe(browserSync.reload({stream: true}))
});
gulp.task('scripts', function(){
    return gulp.src([
        'build/libs/jquery/dist/jquery.min.js',     
        'build/libs/jquery.mask.min.js',
        'build/libs/owl.carousel.min.js'                            
        ])  
    .pipe(concat('libs.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest('project/js'));
});
gulp.task('css-libs', ['less'], function(){
    return gulp.src('project/css/libs.css')
    .pipe(cssnano())    
    .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('project/css/'));
});

gulp.task('watch', ['browser-sync', 'css-libs', 'scripts'], function() {    
    gulp.watch('build/less/*.less', ['less']);
    gulp.watch('project/**/*.php', browserSync.reload);
    gulp.watch('project/*.html', browserSync.reload);
    gulp.watch('project/**/*.js', browserSync.reload);
    gulp.watch('project/fonts/*', browserSync.reload);
});

P.S. скрин ошибки

Answer 1

Перенеси plumber() выше, что бы он перехватывал ошибки less()

gulp.task('less', function() {
  return gulp.src('build/less/*.less')
    .pipe(plumber())
    .pipe(less())
    .pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], { cascade: true })) //Включаем автопрефиксы
    .pipe(gcmq()) //Группируем медиазапросы
    .pipe(sourcemaps.init())
    .pipe(cleanCSS({compatibility: 'ie8'}))
    .pipe(sourcemaps.write())
    .pipe(plumber.stop())
    .pipe(gulp.dest('project/css')) 
    .pipe(browserSync.reload({stream: true}))
});
READ ALSO
Мега меню с помощью jQuery UI

Мега меню с помощью jQuery UI

Делаю меню на jQuery UIКак сделать, чтобы все подпункты были сверху на одной линии?

312
Выполнение скрипта со второй страницы

Выполнение скрипта со второй страницы

Добрый день! Есть скрипт модального окнаСкрипт выполняется сразу же как посетитель открыл первую страницу сайта, т

251
Свойства текста через JS [дубликат]

Свойства текста через JS [дубликат]

На данный вопрос уже ответили:

299
Найти в заданном числе нужную цифру

Найти в заданном числе нужную цифру

Здравствуйте! Есть массив чиселМне надо проверить этот массив на наличие чисел, в состав которых входит цифра 6

339