Compilation 应用程序中的Elixir源代码

Compilation 应用程序中的Elixir源代码,compilation,erlang,elixir,Compilation,Erlang,Elixir,我想将具有Elixir后端的应用程序分发给最终用户,以便它可以在他们自己的机器上运行。有没有办法让他们不用访问原始源代码,但可以向我发送可以分析的崩溃报告?假设Elixir系统是作为一个合适的OTP应用程序开发的,您可以使用构建OTP版本,并将其分发给客户机。该版本将删除所有编译时构造,如源代码或测试 基本上,您需要在mix.exs中添加exrm作为依赖项,然后: mix deps.get MIX_ENV=prod mix compile --no-debug-info MIX_ENV=prod

我想将具有Elixir后端的应用程序分发给最终用户,以便它可以在他们自己的机器上运行。有没有办法让他们不用访问原始源代码,但可以向我发送可以分析的崩溃报告?

假设Elixir系统是作为一个合适的OTP应用程序开发的,您可以使用构建OTP版本,并将其分发给客户机。该版本将删除所有编译时构造,如源代码或测试

基本上,您需要在
mix.exs
中添加exrm作为依赖项,然后:

mix deps.get
MIX_ENV=prod mix compile --no-debug-info
MIX_ENV=prod mix release
生成的版本将驻留在项目根目录下的
rel/your\u app\u name
文件夹中。它还将在
erts-X.Y
子文件夹中包含嵌入式Erlang运行时。这意味着您不需要在目标机器上安装Erlang,但需要在它的精确副本(OS版本&arch)上构建一个发行版

如果删除
erts-X.Y
文件夹,生成的版本仍将工作,但需要在系统上安装Erlang并在path中可用。这使得该版本更加跨平台,但不那么独立

无论哪种方式,您都不需要在目标机器上使用长生不老药。生成的OTP版本中将包含必要的文件

最后一点注意:目前,
exrm
在Windows上不起作用(但正在进行一些修复工作),因此如果这是您的目标操作系统,您需要寻找其他方法来生成发行版