已编译 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()
我正在 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()