Sass 大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口

Sass 大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口,sass,gulp,gulp-sass,Sass,Gulp,Gulp Sass,带有.Sass文件的Sass 这是我的gulpfile 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.

带有.Sass文件的Sass

这是我的gulpfile

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,使用这个gulpfile的Gulp设置不会中断或显示任何错误(但如果没有错误,则编译)。但只会编译正确的语法。如果更改为.scss,它会记录错误。

您需要将错误事件侦听器附加到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);
}