7

假设我有一个带有子命令和参数(如application foo --bar baz)的 CLI 应用程序。如何在不需要用户安装 Erlang 的情况下打包它以进行分发?

我知道有mix escriptMix 任务,但它构建了一个需要安装 Erlang 的二进制文件,而且 Mix 参考声明 escripts 应该仅用于开发目的。 mix release但是,会产生我不想在 dist 中看到的多余的 shell 脚本。

那么,有没有办法让 Elixir CLI 应用程序独立分发?

PS 这实际上是我第一次使用 Elixir(以及整个 Erlang 生态系统)

4

2 回答 2

3

Elixir 应用程序可以打包为Erlang 版本,另请参见此处。这些可以包括 Erlang VM。Elixir 从 1.9 开始支持在没有额外工具的情况下构建版本,使用包含mix release的混合任务 - 请查看文档了解详细信息:https ://hexdocs.pm/mix/Mix.Tasks.Release.html

您可能会从快速浏览这篇博客文章中获得灵感和概念概述中受益,并注意到对于简单的 CLI 应用程序来说它要简单得多:https ://www.cogini.com/blog/best-practices-for-deploying-elixir-应用/

于 2021-02-17T15:31:49.707 回答
2

Bakeware生成单个可执行文件。

他们在这里添加了一个 CLI 应用程序示例。

于 2021-02-17T18:24:26.663 回答