已附加此答案以反映 Gulp 的最新更改。为了与 OPs 问题相关,我保留了原始回复。如果您使用的是 Gulp 2.x,请跳至第二部分
原始响应,Gulp 1.x
您可以通过将errLogToConsole: true 作为选项传递给sass() 方法来更改此默认行为。
您的任务现在可能看起来像这样:
gulp.task('sass', function () {
gulp.src('./*.scss')
.pipe(sass())
.pipe(gulp.dest('./'));
});
更改.pipe(sass()) 行以包含errLogToConsole: true 选项:
.pipe(sass({errLogToConsole: true}))
这是带有错误日志记录的任务的样子:
gulp.task('sass', function () {
gulp.src('./*.scss')
.pipe(sass({errLogToConsole: true}))
.pipe(gulp.dest('./'));
});
错误输出现在将是内联的,如下所示:
[gulp] [gulp-sass] source string:1: error: invalid top-level expression
您可以在 nmpjs.org 上阅读有关 gulp-sass options and configuration 的更多信息
Gulp 2.x
在 Gulp 2.x 中,errLogToConsole 可能不再使用。幸运的是,gulp-sass 有一个处理错误的方法。使用on('error', sass.logError):
gulp.task('sass', function () {
gulp.src('./sass/**/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('./css'));
});
如果您需要更细粒度的控制,请随时提供回调函数:
gulp.task('sass', function () {
gulp.src('./sass/**/*.scss')
.pipe(sass()
.on('error', function (err) {
sass.logError(err);
this.emit('end');
})
)
.pipe(gulp.dest('./css'));
});
如果您需要有关过程控制的更多信息,这是一个很好的阅读主题:https://github.com/gulpjs/gulp/issues/259#issuecomment-55098512