已附加此答案以反映 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
选项和配置的更多信息
吞咽 2.x
在 Gulp 2.xerrLogToConsole
中可能不再使用。幸运的是,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