У меня есть довольно простая задача микширования, на самом деле она оборачивает команду npm
и возвращает ее вывод в командную строку:
defmodule Mix.Tasks.JsLint do
use Mix.Task
@shortdoc "Runs javascript lint"
def run(_args) do
System.cmd("npm", ["run", "lint"], into: IO.stream(:stdio, :line), stderr_to_stdout: true)
end
end
Проблема в том, что если я запускаю npm run lint
в командной строке, он возвращает цветной вывод. Но если я запускаю mix js_lint
, он возвращает нецветный вывод.
Где я теряю цвета? Как я могу это исправить?
ОБНОВЛЕНИЕ Я использую eslint.
lint
?eslint
? Если это так, попробуйте добавить--color
к вызовуeslint
. - person Dogbert   schedule 23.09.2016npm lint
достаточно умен, чтобы видеть, что он выводит в канал, а не на консоль для подавления цветов. По сути, он внутренне проверяетis_tty
или что-то подобное, получаетfalse
и подавляет цвета, чтобы удалить[^033
мусор в файле журнала. - person Aleksei Matiushkin   schedule 23.09.2016--color
заставит включить цвета вeslint
. - person Dogbert   schedule 23.09.2016