Elixir混合文件 - :应用程序vs:extra_applications - 何时使用哪个?

Ahm*_*ous 13 elixir

来自Elixir文档:

:applications - 应用程序在运行时依赖的所有应用程序.默认情况下,此列表是从依赖项中自动推断出来的.必须在中指定任何额外的Erlang/Elixir依赖项:extra_applications.混合和其他工具使用应用程序列表,以便在启动应用程序本身之前启动依赖项.

:extra_applications - 您希望在应用程序之前启动的Erlang/Elixir应用程序列表.例如,Elixir :logger或Erlang的:crypto.

如果:applications自动推断列表,那么在我们应该添加应用程序:applications而不是:extra_applications?时,有哪些示例场景?反之亦然?

mic*_*ala 16

如果您使用,applications则不会进行任何推断并且extra_applications不予考虑.如果applications没有提供,它们将设置为以下内容:

applications_inferred_from_deps ++ extra_applications
Run Code Online (Sandbox Code Playgroud)

你使用其中一个,但从不两者兼而有之.

  • 有一篇关于应用程序与 extra_applications 的[很棒的文章](https://www.amberbit.com/blog/2017/9/22/elixir-applications-vs-extra_applications-guide/),其中包含不同用例的示例和详细信息。 (4认同)
  • 这是一个较旧的界面.`extra_applications`推理仅在Elixir 1.4中引入,`applications`键存在兼容性. (3认同)