Elixir 为什么需要在项目中列出库依赖项';s应用程序?
将库依赖项(仅提供函数)列为应用程序的目的是什么 例如,当它只提供简单功能时,项目建议将其作为应用程序包含Elixir 为什么需要在项目中列出库依赖项';s应用程序?,elixir,otp,Elixir,Otp,将库依赖项(仅提供函数)列为应用程序的目的是什么 例如,当它只提供简单功能时,项目建议将其作为应用程序包含 def application do [applications: [:left_pad]] end 长生不老药包是否应始终作为应用程序提供?新的库开发人员如何使其依赖项作为应用程序可用?这还提供了哪些其他功能?每个运行时依赖项都应添加到应用程序列表中。包是只提供函数还是运行进程是一个实现细节,用户不应该关心 此外,由于Erlang可以动态加载代码,我的理解是,将应用程序添加到依赖项
def application do
[applications: [:left_pad]]
end
长生不老药包是否应始终作为应用程序提供?新的库开发人员如何使其依赖项作为应用程序可用?这还提供了哪些其他功能?每个运行时依赖项都应添加到应用程序列表中。包是只提供函数还是运行进程是一个实现细节,用户不应该关心 此外,由于Erlang可以动态加载代码,我的理解是,将应用程序添加到依赖项列表中可以确保以正确的顺序加载模块。这在不属于您的应用程序或任何依赖项的模块根本不包含在版本中的版本中尤其重要 关于为什么有两个地方可以定义依赖关系的问题:
deps
和应用程序
:
-主要是关于您需要从其他地方获取的包和代码deps
-是关于运行时依赖关系的。您可能在应用程序
中声明了一些仅编译时的依赖项,但由于它不是运行时依赖项,因此不需要包含在deps
应用程序中
- 看看这个问题:
基本上,应用程序所依赖的所有应用程序都保证在应用程序启动之前启动
但是,如果应用程序中的某个函数调用尚未加载的模块中的另一个函数,并且该模块位于从返回的路径之一,则VM仍将自动加载该模块
但是,当使用release handler进行发布时(有关更多信息,请参见),只有特定的应用程序才会进入发布中—您在
reltool.config
中明确指定的应用程序以及依赖的应用程序。如果您的应用程序使用库应用程序,而您既没有在应用程序文件中也没有在发布配置文件中列出它,那么它将不会部署到生产系统,并且您的应用程序将无法从库应用程序调用函数
是的,如