NodeJS child_process ansi в стандартном выводе

Я хочу получить что-то вроде

[06:32:35] [Server thread/INFO]: [0;36;1m  |    [0;36;22m|__)   [0;32;22mLuckPerms [0;36;1mv4.3.73[m
[06:32:35] [Server thread/INFO]: [0;36;1m  |___ [0;36;22m|      [0;30;1mRunning on Bukkit - CraftBukkit[m

но я получаю

[06:05:02] [Server thread/INFO]:   |    |__)   LuckPerms v4.3.73
[06:05:02] [Server thread/INFO]:   |___ |      Running on Bukkit - CraftBukkit

При запуске сервера minecraft с использованием child_process

prcs.stdout.on("data", function(d) {
    console.info(d.toString());
});

Какова структура d? Это уже строка? Части разделены пробелами или табуляцией? Каковы повторяющиеся части d? (Тогда вы, вероятно, можете решить это с помощью регулярных выражений и/или строковых методов, таких как split и indexOf.)

Stock Overflaw 24.02.2019 14:00
d это <Буфер>
TSEngineer 24.02.2019 17:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
163
1

Ответы 1

Не зная точно, как формируется d, вот что-то, что соответствует вашему примеру, возможно, не совсем так, как вам нужно, но вы всегда можете попробовать и обновить его (и, по крайней мере, это не требует никакой зависимости):

const versionRegExp = /v[0-9]+(\.[0-9]+)*$/;
d.toString().split("\n").forEach((line) => {
  // no idea what the spaces are made of
  const exploded = line.trim().split(/[ \t]+/);
  // add paddings to the first two structures
  const first = exploded.shift().padEnd(5, ' ');
  const second = exploded.shift().padEnd(7, ' ');
  // work out the content
  // condition based on `second`, or should it be remainder.match(versionRegExp) ?
  const remainder = 0 === second.indexOf('|__)')
    ? `[0;30;1m${exploded.join(' ').replace(versionRegExp, '[0;36;1m$&')}[m`
    : `[0;32;22m${exploded.join(' ')}[m`
  ;
  // format line and display
  console.info(`[0;36;1m${first}[0;36;22m${second}${remainder}`);
});

НЕТ! Мне нужно вывести ANSI из процесса child_process stdout, child_process — это модуль для nodejs

TSEngineer 25.02.2019 19:02

Этот код должен дать вам представление о том, как это можно сделать (хотя он очень широк, поскольку вы не ответили на мои вопросы в комментариях). Адаптация его к вашему контексту (о котором я мало знаю, учитывая ваш краткий пост) зависит от вас.

Stock Overflaw 25.02.2019 20:21

Как ты не понимаешь? Я имею в виду, что child_process STDOUT не выводит ANSI

TSEngineer 26.02.2019 22:58

Ваш вопрос касался добавления управляющих последовательностей ANSI в строку. Цитата: Я хочу что-то вроде [строки с расширением ANSI], но получаю [стандартные строки]. Если вам не нравится ответ, переосмыслите вопрос.

Stock Overflaw 27.02.2019 03:11

Другие вопросы по теме