摘自mix deps
文档:
:runtime
-依赖项是否是运行时应用程序的一部分。 如果在:applications
中没有提供def application
键 您的mix.exs文件,Mix将自动包括所有依赖项 运行时应用程序,除非给出了runtime: false
。默认值 真实。
根据mix compile.app
文档:
:applications
-您的应用程序所依赖的所有应用程序位于 运行。默认情况下,此列表是根据您的 依赖性。混合和其他工具使用应用程序列表是为了 在启动应用程序本身之前,先启动依赖项。
这是否意味着将runtime: false
添加到依赖项将使其不作为应用程序监视树的一部分启动,但其功能在编译时可用?
答案 0 :(得分:4)
就像您提到的,情况确实如此。启动主应用程序时,标记依赖项runtime: false
不会将其作为应用程序监视树的一部分启动。
在Elixir 1.4之前,我们必须通过将其放入applications
中来分别指定需要启动的应用程序:
def application do
[applications: [:logger, :bamboo]]
end
现在,我们改为使用extra_applications
并标记特定的依赖项runtime: false
,以便在运行时将其从应用程序列表中删除。