已编译 CLI 中的 ANSI 颜色代码

ANSI color codes in compiled CLI

我正在 Elixir 中构建一个 CLI 实用程序,并且正在为 UX 付出一些额外的努力,因为它可能会被大量重用。

当我使用 iex -S mix 并直接调用入口点来包含 IO.puts(IO.ANSI.format([:yellow,"some output"])) 和 运行 应用程序时,一切都按预期工作。

然而,当我使用 mix escript.build 构建应用程序然后使用 ./{the_app_name} 调用它时,应用程序 运行 就很好,但是 ANSI 代码显然被剥离了,因为颜色都没有了。

显然这不是一个绝对关键的问题,但它会大大提高应用程序的可用性。

code, IO.ANSI.enabled?/0可以看出默认是false。我相信(虽然我还没有测试过)明确启用它会有所作为。

Application.put_env(:elixir, :ansi_enabled, true)

[:yellow, "some output"]
|> IO.ANSI.format()
|> IO.puts()