Для Node.js
есть замечательный модуль chalk
, который позволяет применять раскраску и форматирование текста к функции console.log()
.
Если я напишу что-то вроде этого:
console.log("test string substitution with coloring: %s, %s", chalk.red("red"), chalk.magenta("magenta"));
он будет использовать подстановку строк и выводит красный и mageenta правильно окрашенные:

Теперь я пытаюсь сделать функции, которые принимают текст слитералы замещения в качестве первого параметра и последующего переменного количества параметров, которые должны:
- заменять соответствующие литералы замещения (как это делает обычный
console.log()
); - каждый переданный параметр должен иметь цветкрасный с использованием
chalk.red()
;
Например:
function log(text, ...args) {
// magic here
}
log("This must be %s, and %s as well", "red", "this must be red");
Это должно дать следующее:

Я пытался использовать console.log(text, chalk.red.apply(null, args))
, но, похоже, он не дает того, что я хочу.