何时在Elixir中使用仅编译依赖项

Paw*_*rok 4 elixir exrm

什么时候仅deps在my中指定依赖项mix.exs而不在in中指定运行时依赖项才合适applications

我认为这applications是需要启动的实际应用程序,然后才能启动我自己的应用程序,但是我遇到了一个问题,exrm就是Jazz直到我将包含在内:jazz时,才将库(我认为仅包含纯函数)放到发行版中applications

sas*_*ric 5

OTP应用程序更像一个组件-一堆可能(但不一定)运行某些进程的模块和功能。如果OTP应用程序未启动其自己的监视树,则称为库应用程序。无论哪种方式,如果在运行时使用某些libs函数,则需要将其指定为运行时dep。

相反,编译时依赖性仅确保获取第三方代码并在本地(在您的开发/构建计算机上)可用。如果第三方代码在运行时之外发挥了魔力,这将很有用。一个例子可能是我自己的赃官或纯二郎梅克嘲讽库。在第一种情况下,ExActor在编译过程中发挥了魔力,而在第二种情况下,仅在测试过程中需要模拟库。