-1

我有这个 :

  //define in utils.js
   function l (message) {
    if (message.includes('success')) {
        return console.log.bind.call(console.log, console, `%c%s`, `color:green;`)
    } else {
        return console.log.bind.call(console.log, console, `%c%s`)
    }
}
   

    l("success to import")("success to import") // execute in index.js

它之所以有效,是因为我有好的颜色和好的行(来自 index.js 而不是 utils.js)。但我希望能够只写l("success this check work", some var,...)

而不是带两对括号...

我想要一个可以根据日志内容改变颜色的包装函数:如果我成功了,我想要绿色日志如果我有错误,我想要红色日志并显示正确的日志行,不是来自 utils.js,而是来自其他文件 js它被称为

在此处输入图像描述

4

1 回答 1

1

我会推荐创建一个对象来分离出方法,比如成功,失败。但是,仍然需要遵循以下语法。此示例适用于节点 js。

const logger = {
  log: (...messages) => console.log("\x1b[36m%s\x1b[0m", ...messages),
  info: (...messages) => console.log("\x1b[36m%s\x1b[0m", ...messages),
  warn: (...messages) => console.log("\x1b[33m%s\x1b[0m", ...messages),
  error: (...messages) => console.log("\x1b[31m%s\x1b[0m", ...messages),
  success: (...messages) => console.log("\x1b[32m%s\x1b[0m", ...messages),
  _raw: console.log
};
const l = (...messages) => {
  if (messages.length === 1) {
    if (messages[0].indexOf("success") !== -1)
      console.log(`%c${messages[0]}`, "color: green; font-size: 16px;");
    else if (messages[0].indexOf("error") !== -1)
      console.log(`%c${messages[0]}`, "color: red; font-size: 16px;");
    else console.log(`%c${messages[0]}`, "color: blue; font-size: 16px;");
  } else console.log(...messages);
};
l("success to import"); // execute in index.js
l("error to import");

于 2020-03-30T20:45:50.697 回答