【发布时间】:2019-04-20 06:37:43
【问题描述】:
我有一个启动应用程序的依赖项,但我只想使用它的模块而不希望它的主管运行。如何从启动中排除它?
我在 mans for app.start、run 或 Mix.Project 模块中没有找到与此相关的任何内容
【问题讨论】:
标签: elixir elixir-mix
我有一个启动应用程序的依赖项,但我只想使用它的模块而不希望它的主管运行。如何从启动中排除它?
我在 mans for app.start、run 或 Mix.Project 模块中没有找到与此相关的任何内容
【问题讨论】:
标签: elixir elixir-mix
指定runtime 通常是大多数elixir 应用程序的正确方法:
{:some_dep, "~> 1.0.0", runtime: false}
这会导致依赖项的应用程序监督树无法与应用程序的其余部分一起启动。但是,如果您愿意,这仍然允许您在运行时手动启动它。
当改用app: false 时,根本不会读取依赖项的Application 模块,因此您以后甚至无法手动启动它。
【讨论】:
runtime: false 不适用于伞形依赖项吗?我刚刚尝试过,当我尝试启动该应用程序时收到{:error, {:already_started, :myapp}} 错误
runtime: false 的应用程序。它说{:error, {'no such file or directory', 'some_app.app'}}
刚刚在mix help deps找到它
它们都适用于我的情况,但不确定有什么区别。
【讨论】: