向控制臺輸出信息。
參見 log lib source 以獲取更多信息。
Grunt的輸出應(yīng)當(dāng)看上去一致、美觀。因此, 就有了這些log方法和一些有用的模式。所有用于輸出日志的方法都可以鏈?zhǔn)秸{(diào)用。
注意:只有在命令行中指定 --verbose
選項時,所有 grunt.verbose
中的方法才會輸出日志,并且完全像 grunt.log
中的方法一樣工作。
輸出指定的 msg
字符串日志,結(jié)尾不帶換行符(newline)。
grunt.log.write(msg)
輸出指定的 msg
字符串日志,結(jié)尾帶換行符(newline)。
grunt.log.writeln([msg])
如果省略msg
字符串,將會以紅色字體輸出ERROR
,否則輸出>> msg
,并且尾部帶有換行符。
grunt.log.error([msg])
使用grunt.log.error
記錄一個錯誤日志,使用grunt.log.wraptext
可以將日志以每行80個字符的形式輸出。
grunt.log.errorlns(msg)
如果省略msg
字符串,將會以綠色字體輸出OK
, 否則輸出>> msg
,并且尾部帶有換行符。
grunt.log.ok([msg])
使用grunt.log.ok
記錄一條ok消息,使用grunt.log.wraptext
可以將日志以每行80個字符的形式輸出。
grunt.log.oklns(msg)
記錄指定的msg
字符串并加粗,尾部帶有換行符。
grunt.log.subhead(msg)
記錄obj
的屬性列表(用于調(diào)試標(biāo)志最好)。
grunt.log.writeflags(obj, prefix)
記錄一條調(diào)試信息,但是,僅當(dāng)在命令行中指定 --debug
選項時才會輸出。
grunt.log.debug(msg)
所有grunt.verbose
下可用的日志記錄方法的工作都酷似它們所對應(yīng)的grunt.log
方法,但是它們只在指定--verbose
命令行選項的情況下才一樣。還有一個對應(yīng)"notverbose"適用于grunt.log.notverbose
和grunt.log.verbose.or
。實際上,.or
屬性也可以用于在verbose
和notverbose
兩者之間有效的進(jìn)行切換。
這個對象包含grunt.log
下的所有方法,但是只在指定--verbose
命令行選項情況下它才會輸出日志信息。
grunt.verbose
這個對象也包含grunt.log
下的所有方法,但是只在不指定--verbose
命令行選項情況下它才會輸出日志信息。
grunt.verbose.or
這些方法實際上不記錄日志,它們只返回字符串,返回的字符串可以用于其他方法。
Returns a comma-separated list of arr
array items. arr
數(shù)組中的條目將會以逗號分割的形式返回。
grunt.log.wordlist(arr [, options])
options
對象擁有以下屬性和默認(rèn)值:
var options = {
// The separator string (can be colored).
separator: ', ',
// The array item color (specify false to not colorize).
color: 'cyan',
};
從字符串中移除所有顏色信息,使其適合檢測其 .length
或?qū)懭肴罩疚募??!?/p>
grunt.log.uncolor(str)
以 width
個字符為一組將 text
字符串進(jìn)行分解并添加 \n
字符,除非絕對必要,否則將盡量確保不會從中間截斷單詞。
grunt.log.wraptext(width, text)
以 width
個字符為一組將 text
字符串進(jìn)行分解。Wrap texts
array of strings to columns widths
characters wide. A wrapper for the grunt.log.wraptext
method that can be used to generate output in columns.
grunt.log.table(widths, texts)
通常的模式是,只有在 --verbose
模式或發(fā)生錯誤時才輸出日志,如下所示:
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();
以綠色輸出日志信息,末尾輸出換行符。grunt.verbose.or.write(msg).error().error(e.message);
做了以下幾件事:grunt.verbose.or.write(msg)
如果不在 --verbose
模式則輸出日志信息,然后返回notverbose
對象。.error()
以紅色輸出ERROR日志,結(jié)尾輸出換行符,然后返回 notverbose
對象。.error(e.message);
輸出實際的錯誤信息(并返回 notverbose
對象)。grunt.fail.warn('Something went wrong.');
以嫩黃色輸出警告信息。除非在命令行指定了--force
選項,否則輸出退出碼1,然后退出 Grunt。查看 grunt-contrib-* 任務(wù)的源碼 以獲取更多案例。
更多建議: