nodejs colors模組 設定控制檯log顏色

somnus3421發表於2016-04-20

平時公司開發時使用fibjs,console列印時,控制檯文字可以有各種顏色。

比如:

console.log('白色');//白色
console.notice('綠色')//綠色
console.error('紅色')//紅色


最近寫一些小東西的時候發現node的log和error都是一種顏色的,很難受,然後發現node有個模組可以完成渲染。

步驟如下

1.在安裝了node和npm的情況下

npm install colors

2.直接在程式碼中rquire

var colors = require('colors');

console.log('字串'.green);//綠色
console.log('字串'['red']);//紅色</span>

原理應該是改寫了String的原型鏈,在文字前加上了顏色編碼。


不過每次都在字串後面加屬性實在是有點累,於是我在外面封了一層。。 請指錯交流

var color = require('colors');

var config = {
    notice: 'green',
    error: 'red',
    show: 'rainbow',
    bat: 'blue',
    debug: 'gray'
};

var type = {
    'string': function(msg, rule) {
        return msg[rule];
    },
    'number': function(msg, rule) {
        return ('' + msg)[rule];
    },
    'object': function(msg, rule) {
        return JSON.stringify(msg)[rule];
    },
    'function': function(msg, rule) {
        return msg.toString()[rule];
    },
    'boolean': function(msg, rule) {
        return ('' + msg)[rule];
    },
    'undefined': function(msg, rule) {
        return ('' + msg)[rule];
    }
}

function _Console() {
    this.log = function(msg){
        console.log('[log]:', msg);
    }
}


for (var item in config) {
    (function(item) {
        _Console.prototype[item] = function(msg) {
            console.log(('[' + item + ']:')[config[item]], type[typeof msg](msg, config[item]));
        }
    })(item);
}

exports._console = new _Console();


github地址:https://github.com/liwenjie3421/colorfulConsole



相關文章