grunt.log

2018-11-02 14:01 更新

grunt.log

向控制臺輸出信息。

參見 log lib source 以獲取更多信息。

The log API

Grunt的輸出應(yīng)當(dāng)看上去一致、美觀。因此, 就有了這些log方法和一些有用的模式。所有用于輸出日志的方法都可以鏈?zhǔn)秸{(diào)用。

注意:只有在命令行中指定 --verbose 選項時,所有 grunt.verbose 中的方法才會輸出日志,并且完全像 grunt.log 中的方法一樣工作。

grunt.log.write / grunt.verbose.write

輸出指定的 msg 字符串日志,結(jié)尾不帶換行符(newline)。

grunt.log.write(msg)

grunt.log.writeln / grunt.verbose.writeln

輸出指定的 msg 字符串日志,結(jié)尾帶換行符(newline)。

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記錄一條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的屬性列表(用于調(diào)試標(biāo)志最好)。

grunt.log.writeflags(obj, prefix)

grunt.log.debug / grunt.verbose.debug

記錄一條調(diào)試信息,但是,僅當(dāng)在命令行中指定 --debug選項時才會輸出。

grunt.log.debug(msg)

Verbose 和 Notverbose

所有grunt.verbose下可用的日志記錄方法的工作都酷似它們所對應(yīng)的grunt.log方法,但是它們只在指定--verbose命令行選項的情況下才一樣。還有一個對應(yīng)"notverbose"適用于grunt.log.notverbosegrunt.log.verbose.or。實際上,.or屬性也可以用于在verbosenotverbose兩者之間有效的進(jìn)行切換。

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

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',
};

grunt.log.uncolor

從字符串中移除所有顏色信息,使其適合檢測其 .length 或?qū)懭肴罩疚募??!?/p>

grunt.log.uncolor(str)

grunt.log.wraptext

以 width 個字符為一組將 text 字符串進(jìn)行分解并添加 \n 字符,除非絕對必要,否則將盡量確保不會從中間截斷單詞。

grunt.log.wraptext(width, text)

grunt.log.table

以 width 個字符為一組將 text 字符串進(jìn)行分解。Wrap texts array of strings to columns widthscharacters 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.');
  }
});

解釋以上代碼:

  1. grunt.verbose.write(msg); 只有在 --verbose 模式時才會輸出日志信息(沒有換行符)。
  2. grunt.verbose.ok(); 以綠色輸出日志信息,末尾輸出換行符。
  3. grunt.verbose.or.write(msg).error().error(e.message); 做了以下幾件事:
    1. grunt.verbose.or.write(msg) 如果不在 --verbose 模式則輸出日志信息,然后返回notverbose 對象。
    2. .error() 以紅色輸出ERROR日志,結(jié)尾輸出換行符,然后返回 notverbose 對象。
    3. .error(e.message); 輸出實際的錯誤信息(并返回 notverbose 對象)。
  4. grunt.fail.warn('Something went wrong.'); 以嫩黃色輸出警告信息。除非在命令行指定了--force 選項,否則輸出退出碼1,然后退出 Grunt。

查看 grunt-contrib-* 任務(wù)的源碼 以獲取更多案例。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號