我正在写一个Elixir包,我想指定一个默认的应用程序配置(用户可以通过在其中指定自定义值来覆盖config.exs).我原本把它们放在我的项目中,config.exs直到我意识到不会为依赖于这个库的项目加载配置文件.
配置文件本身告诉您:
此配置在任何依赖项之前加载,并且仅限于此项目.如果另一个项目依赖于此项目,则不会加载此文件也不会影响父项目.因此,如果要为第三方用户提供应用程序的默认值,则应在"mix.exs"文件中完成.
我一直在努力了解如何在我的指定应用程序默认值mix.exs并使用它们.我目前的解决方案是使用Application.get_env/3默认参数,但这对我来说似乎不对,因为应用程序默认值会分散在代码中.
Application.get_env(:my_library, :arg, "default value")
Run Code Online (Sandbox Code Playgroud)
那么,我如何指定应用程序默认值mix.exs?
您可以为应用程序设置默认配置值mix.exs- 当在另一个项目中用作依赖项时,这些值也可用.例如:
def applications do
[applications: [:logger, ...],
mod: {MyLibrary.Application, []},
env: [arg: "default value"]]
end
Run Code Online (Sandbox Code Playgroud)