【问题标题】:What does `runtime: false` mean in the Mixfile dependencies?Mixfile 依赖项中的“runtime: false”是什么意思?
【发布时间】:2019-03-28 06:20:43
【问题描述】:

来自mix deps 文档:

:runtime - 依赖项是否是运行时应用程序的一部分。 如果在def application 中未提供:applications 键 你的 mix.exs 文件,Mix 将自动包含所有依赖项 运行时应用程序,除非给出runtime: false。默认值 为真。

根据mix compile.app docs:

:applications - 您的应用程序依赖的所有应用程序 运行。默认情况下,此列表会自动从您的 依赖关系。 Mix 和其他工具使用应用程序列表来 在启动应用程序之前启动您的依赖项。

这是否意味着将 runtime: false 添加到依赖项会使其作为应用程序监督树的一部分启动,但其功能将在编译时可用?

【问题讨论】:

    标签: elixir erlang-otp elixir-mix


    【解决方案1】:

    就像您提到的那样,情况正是如此。当您的主应用程序启动时,将依赖项标记为 runtime: false 不会将其作为应用程序监督树的一部分启动。

    在 Elixir 1.4 之前,我们必须通过将它们放入 applications 来单独指定需要启动的应用程序:

    def application do
      [applications: [:logger, :bamboo]]
    end
    

    现在我们改用extra_applications 并标记特定依赖项runtime: false 以在运行时将它们从应用程序列表中删除。

    【讨论】:

    • 历史旁注特别有用,谢谢!
    猜你喜欢
    • 2018-04-10
    • 2011-08-05
    • 1970-01-01
    • 2019-04-23
    • 2021-06-07
    • 2022-11-07
    • 2016-03-17
    • 1970-01-01
    • 2020-12-04
    相关资源
    最近更新 更多