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 с этим gulpfile не прерывает и не отображает никаких ошибок (но компилируется, если ошибок нет). но только правильный синтаксис будет скомпилирован. в то время как при изменении на.scss, это регистрирует ошибки.
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);
}