Terminal Gulp-使用粉笔更改终端中的错误文本颜色

Terminal Gulp-使用粉笔更改终端中的错误文本颜色,terminal,gulp,chalk,Terminal,Gulp,Chalk,这是我的gulpfile.js var gulp = require('gulp'); var sass = require('gulp-ruby-sass'); var chalk = require('chalk'); gulp.task('sass', function() { return sass('assets/scss/*.scss') .on('error', sass.logError) .pipe(gulp.dest('assets/css'))

这是我的gulpfile.js

var gulp  = require('gulp');
var sass  = require('gulp-ruby-sass');
var chalk = require('chalk');

gulp.task('sass', function() {
    return sass('assets/scss/*.scss')
    .on('error', sass.logError)
    .pipe(gulp.dest('assets/css'))
});
错误日志记录有效,例如,如果我在Sass中设置了未定义的变量,终端将显示:

[13:31:23] Using gulpfile ~/Development/test/gulpfile.js
[13:31:23] Starting 'sass'...
[13:31:23] error assets/scss/style.scss (Line 3: Undefined variable: "$red".)
[13:31:23] Finished 'sass' after 248 ms
我已经包括了我想在终端中更改错误颜色的内容,但是我该怎么做呢?我试过:

.on('error', chalk.red(sass.logError))

但这不起作用。请帮忙

@康普茶是对的,您可以重新实现
sass.logError
并在其内部使用
chalk.red
。在检查来自的
sass.logError
的源代码后,结果如下:

var gutil = require('gulp-util');
...
.on('error', function() {
    var message = new gutil.PluginError('gulp-ruby-sass', err);
    console.error(chalk.red(message + '\n'));
    this.emit('end');
})

它不起作用,因为
chalk.red
需要一个
字符串
,但您给了它一个
函数
。你可以重新实现
sass.logError
,如果你想的话……派对迟到了,但是我没有看到你在第一个例子中使用粉笔的地方。如果你仍然面临这个问题,你能用一个完整的例子来编辑吗?