grunt.log
将消息输出到控制台。
有关详细信息,请参阅日志库源代码。
日志 API
Grunt 输出应该看起来一致,甚至可能很漂亮。因此,有大量的日志记录方法和一些有用的模式。所有实际记录内容的方法都是可链接的。
注意:grunt.verbose
下的所有方法都与 grunt.log
方法完全一样,但仅在指定了 --verbose
命令行选项时才会记录。
grunt.log.write / grunt.verbose.write
记录指定的 msg
字符串,不带尾随换行符。
grunt.log.write(msg)
grunt.log.writeln / grunt.verbose.writeln
记录指定的 msg
字符串,带尾随换行符。
grunt.log.writeln([msg])
grunt.log.error / grunt.verbose.error
如果省略 msg
字符串,则以红色记录 ERROR
,否则记录 >> msg
,带尾随换行符。
grunt.log.error([msg])
grunt.log.errorlns / grunt.verbose.errorlns
使用 grunt.log.error
记录错误,使用 grunt.log.wraptext
将文本包装到 80 列。
grunt.log.errorlns(msg)
grunt.log.ok / grunt.verbose.ok
如果省略 msg
字符串,则以绿色记录 OK
,否则记录 >> msg
,带尾随换行符。
grunt.log.ok([msg])
grunt.log.oklns / grunt.verbose.oklns
使用 grunt.log.ok
记录成功消息,使用 grunt.log.wraptext
将文本包装到 80 列。
grunt.log.oklns(msg)
grunt.log.subhead / grunt.verbose.subhead
以**粗体**记录指定的 msg
字符串,带尾随换行符。
grunt.log.subhead(msg)
grunt.log.writeflags / grunt.verbose.writeflags
记录 obj
属性列表(适用于调试标志)。
grunt.log.writeflags(obj, prefix)
grunt.log.debug / grunt.verbose.debug
记录调试消息,但仅在指定了 --debug
命令行选项时才会记录。
grunt.log.debug(msg)
详细和非详细
grunt.verbose
下的所有日志记录方法都与其 grunt.log
对应方法完全一样,但仅在指定了 --verbose
命令行选项时才会记录。在 grunt.log.notverbose
和 grunt.log.verbose.or
中也提供了“非详细”对应方法。实际上,.or
属性可以在 verbose
和 notverbose
上使用,以有效地在两者之间切换。
grunt.verbose / grunt.log.verbose
此对象包含 grunt.log
的所有方法,但仅在指定了 --verbose
命令行选项时才会记录。
grunt.verbose
grunt.verbose.or / grunt.log.notverbose
此对象包含 grunt.log
的所有方法,但仅在*未*指定 --verbose
命令行选项时才会记录。
grunt.verbose.or
实用方法
这些方法实际上并不记录,它们只返回可在其他方法中使用的字符串。
grunt.log.wordlist
返回 arr
数组项的逗号分隔列表。
grunt.log.wordlist(arr [, options])
options
对象具有以下可能的属性和默认值
var options = {
// The separator string (can be colored).
separator: ', ',
// The array item color (specify false to not colorize).
color: 'cyan',
};
grunt.log.uncolor
从字符串中删除所有颜色信息,使其适合于测试 .length
或可能记录到文件。
grunt.log.uncolor(str)
grunt.log.wraptext
使用 \n
将 text
字符串包装到 width
字符,确保单词不会在中间断开,除非绝对必要。
grunt.log.wraptext(width, text)
grunt.log.table
将 texts
字符串数组包装到 widths
字符宽的列中。grunt.log.wraptext
方法的包装器,可用于在列中生成输出。
grunt.log.table(widths, texts)
示例
一种常见的模式是仅在 --verbose
模式下或发生错误时才记录,如下所示
grunt.registerTask('something', 'Do something interesting.', function(arg) {
var msg = 'Doing something...';
grunt.verbose.write(msg);
try {
doSomethingThatThrowsAnExceptionOnError(arg);
// Success!
grunt.verbose.ok();
} catch(e) {
// Something went wrong.
grunt.verbose.or.write(msg).error().error(e.message);
grunt.fail.warn('Something went wrong.');
}
});
以上代码的说明
grunt.verbose.write(msg);
记录消息(不带换行符),但仅在--verbose
模式下。grunt.verbose.ok();
以绿色记录 OK,带换行符。grunt.verbose.or.write(msg).error().error(e.message);
执行以下操作grunt.verbose.or.write(msg)
如果不在--verbose
模式下,则记录消息(不带换行符),并返回notverbose
对象。.error()
以红色记录 ERROR,带换行符,并返回notverbose
对象。.error(e.message);
记录实际的错误消息(并返回notverbose
对象)。
grunt.fail.warn('Something went wrong.');
以亮黄色记录警告,退出 Grunt 并返回退出代码 1,除非指定了--force
。
查看grunt-contrib-* 任务源代码以获取更多示例。