gpt4 book ai didi

elixir - 为什么项目的应用程序中需要列出库依赖项?

转载 作者:行者123 更新时间:2023-12-02 06:56:17 26 4
gpt4 key购买 nike

将库依赖项(仅提供功能)列为应用程序的目的是什么?

例如,left_pad当仅提供简单功能时,项目建议将其作为应用程序包含在内。

def application do
[applications: [:left_pad]]
end

Elixir 软件包是否应该始终作为应用程序提供?新的库开发人员如何将其依赖项作为应用程序提供?这还提供哪些其他功能?

最佳答案

看看这个问题:Specifying app startup order with erlang.mk

基本上,您的应用程序所依赖的所有应用程序都保证在您的应用程序启动之前启动。

但是,如果应用程序中的函数调用尚未加载的模块中的另一个函数,并且该模块位于从 get_path/0 返回的路径之一中,那么虚拟机无论如何都会自动加载该模块。

但是,当使用发布处理程序进行发布时(请参阅 this question 了解更多信息以及 Erlang's official documentation ),只有特定的应用程序才会进入发布版本 - 您在 reltool.config 中明确指定的应用程序,并且那些依赖的人。如果您的应用程序使用库应用程序,并且您既没有在应用程序文件中也没有在发布配置文件中列出它,则它将不会部署到生产系统,并且您的应用程序将无法从图书馆申请。

是的,正如 michalmuskala 所指出的,依赖项列表也是发布处理程序在使用 release handler 升级版本时计算重新加载模块的顺序时要考虑的一个因素。

所以,总结一下,这在开发环境中并不那么重要,但这是一个很好的实践,如果您在将东西部署到生产环境时进行正确的 Erlang 版本,那么这是必需的。

关于elixir - 为什么项目的应用程序中需要列出库依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36248829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com