Подтвердить что ты не робот

Gulp -sass error с уведомлением

Я задавался вопросом, есть ли способ сообщить сообщение об ошибке gulp -sass. предпочтительно фактическое сообщение, отображаемое в консоли.

Моя задача gulp выглядит следующим образом:

gulp.task('styles', function() {
  return gulp.src('src/scss/style.scss')
    .pipe(sass({ style: 'compressed', errLogToConsole: true }))
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
    .pipe(gulp.dest(''))
    .pipe(livereload(server))
    .pipe(notify({ message: 'Styles task complete' }));
});

Я хотел бы передать уведомление на какой-то обратный вызов ошибки.

Любая помощь оценивается.

4b9b3361

Ответ 1

После того, как я боролся с этим, я обнаружил, что это сработало:

gulp.task('styles', function() {
  return gulp.src('src/scss/style.scss')
    .pipe(sass({
        style: 'compressed',
        errLogToConsole: false,
        onError: function(err) {
            return notify().write(err);
        }
    }))
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
    .pipe(gulp.dest(''))
    .pipe(livereload(server))
    .pipe(notify({ message: 'Styles task complete' }));
});

Вам нужно поймать ошибку, используя параметр onError, который предоставляет gulp -sass.

Надеюсь, что это поможет!

Ответ 2

Я немного опаздываю на вечеринку здесь, но проблема, с которой я столкнулась, заключалась в том, что sass прекратил компиляцию, если бы произошла ошибка в коде, и мне пришлось бы перезапустить gulp. Вот что я сделал:

gulp.task('sass', function() {
    return gulp.src('assets/scss/style.scss')
        .pipe(sass({ errLogToConsole: false, }))
        .on('error', function(err) {
            notify().write(err);
            this.emit('end');
        })
        .pipe(gulp.dest('assets/css'))
        .pipe(notify({ message: 'SCSS Compiled' }));
});

В моем случае мне пришлось добавить this.emit('end');

Ответ 3

С gulp -sass v2.0.4 это работает:

.pipe(sass())
.on('error', notify.onError(function (error) {
   return 'An error occurred while compiling sass.\nLook in the console for details.\n' + error;
}))

Ответ 4

Это тоже работает:

/* Compile sass, and output error to notif */
    .pipe(sass({}).on('error', function(err) {
        return notify().write(err);
    }))