从启动时排除混合项目中的应用程序

Exclude application in a mix project from startup

我有一个启动应用程序的依赖项,但我只想使用它的模块而不想要它的主管 运行ning。如何从启动中排除它?

我没有在 mans for app.start、运行 或 Mix.Project 模块

中找到任何与此相关的内容

刚在mix help deps

中找到
  • :app - 当设置为 false 时,不为此读取应用程序文件 依赖。默认情况下,读取应用程序文件
  • :runtime - 依赖项是否是运行时应用程序的一部分。 默认为 true,它会自动将应用程序添加到列表中 自动启动并包含在版本中的应用

它们都适用于我的情况,但不确定有什么区别。

指定 runtime 通常是大多数 应用程序的正确方法:

{:some_dep, "~> 1.0.0", runtime: false}

这会导致依赖项的应用程序监督树无法启动您的应用程序的其余部分。但这仍然允许您根据需要在运行时手动启动它。

当使用 app: false 时,依赖项的 Application 模块根本不会被读取,因此您以后甚至无法手动启动它。