gulp-sass не показывает никаких ошибок

Sass с файлами .sass,

Вот мой глоток,

var gulp = require('gulp'),
    sass = require('gulp-sass'),
    connect = require('gulp-connect');

connect.server({port: 8000, livereload: true});

function exceptionLog (error) {
  console.log(error.toString());
  this.emit('end');
}

gulp.task('sass', function () {
    gulp.src('sass/*.sass')
        .pipe(sass({
            outputStyle: 'expanded',
            }))
        .on('error', exceptionLog)
        .pipe(gulp.dest('css'))
        .on('error', exceptionLog)
        .pipe(sass.sync().on('error', sass.logError));
});

gulp.task('reload', function () {
    gulp.src('*.html')
        .pipe(connect.reload())
        .on('error', exceptionLog);
});

gulp.task('default', function() {
    gulp.watch(['*.html'],['reload']);
    gulp.watch('**/*.sass', ['sass','reload']);
});

Эта настройка хорошо работает для файлов .scss, хотя сейчас в этом проекте я должен придерживаться .sass, установка Gulp с этим файлом gulp не ломается и не отображает никаких ошибок (но компилируется, если ошибок нет). но будет скомпилирован только правильный синтаксис. в то время как при изменении на .scss он регистрирует ошибки.


person Rivadiz    schedule 22.11.2015    source источник


Ответы (1)


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

.pipe(sass().on('error', sass.logError))

Полный пример:

gulp.task('sass', function () {
  return  gulp.src('sass/*.sass')
    .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
    .pipe(gulp.dest('css'))
    .on('error', exceptionLog);
}
person agconti    schedule 22.11.2015