Mixfile 依赖项中的“runtime: false”是啥意思?
Posted
技术标签:
【中文标题】Mixfile 依赖项中的“runtime: false”是啥意思?【英文标题】: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
添加到依赖项会使其不作为应用程序监督树的一部分启动,但其功能将在编译时可用?
【问题讨论】:
【参考方案1】:就像您提到的那样,情况正是如此。当您的主应用程序启动时,将依赖项标记为 runtime: false
不会将其作为应用程序监督树的一部分启动。
在 Elixir 1.4 之前,我们必须通过将它们放入 applications
来单独指定需要启动的应用程序:
def application do
[applications: [:logger, :bamboo]]
end
现在我们改用extra_applications
并标记特定依赖项runtime: false
以在运行时将它们从应用程序列表中删除。
【讨论】:
历史旁注特别有用,谢谢!以上是关于Mixfile 依赖项中的“runtime: false”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章