【问题标题】:When to use compile-only dependencies in Elixir何时在 Elixir 中使用仅编译依赖项
【发布时间】:2015-07-27 07:04:17
【问题描述】:

什么时候只在我的mix.exs 中的deps 中指定一个依赖项而不是applications 中的运行时依赖项是合适的?

我认为applications 是在我自己的应用程序启动之前需要启动的实际应用程序,但我遇到了一个问题,exrm 没有放置 Jazz 库(我认为它只包含纯函数)到版本中,直到我将:jazz 包含在applications 中。

【问题讨论】:

    标签: elixir exrm


    【解决方案1】:

    OTP 应用程序更像是一个组件——一组可以(但不需要)运行某些进程的模块和函数。如果 OTP 应用程序不启动自己的监督树,则称为库应用程序。无论哪种方式,如果您在运行时使用某些 libs 函数,则需要将其指定为运行时 dep。

    相比之下,编译时依赖只确保第三方代码在本地(在您的开发/构建机器上)被获取和可用。如果 3rd 方代码在运行时之外发挥其魔力,这将很有用。一个例子可能是我自己的 ExActor 或纯 Erlang meck 模拟库。在第一种情况下,ExActor 在编译期间发挥其魔力,而在第二种情况下,您只需要在测试期间使用模拟库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 2014-10-07
      • 2011-09-29
      • 2016-05-30
      • 2015-03-26
      相关资源
      最近更新 更多