2017-03-16 42 views
0

如何將應用程序配置爲在運行時僅在特定環境中加載? 我知道我只能爲測試環境配置依賴項。
有沒有辦法配置mix.exs中的應用程序只能在測試環境中加載?
例如:將應用程序配置爲僅在測試環境中加載

def application do 
    [mod: {MyApp, []}, 
    applications: [:phoenix]] end 

    defp deps do 
    [{:phoenix, "~> 1.2.1"}] end 

我只能配置測試環境鳳凰應用程序?

+2

使用仙丹1.4。它有[應用推論](https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md#application-inference)。它只會根據依賴關係加載應用程序。這就是說,你的混合文件只是elixir的代碼。隨意拋出一個如果在那裏,或寫你自己的方法或東西。你可以使用'Mix.env/1'來知道你所處的環境。 –

回答

2

正如@JustinWood在評論中所述,如果您使用的是elixir 1.4,您可以使用application inference爲您自動完成此操作。

如果你有1.4之前,使用一個版本的靈藥,順便做這將是有類似於你mix.exs下面的內容:

def application do 
    [ 
    mod: {MyApp, []}, 
    applications: applications(Mix.env) 
    ] 
end 

defp applications(:test), do: applications(:default) ++ [:test_only_app_1, :test_only_app_2] 
defp applications(_),  do: [:logger, :httpoison] 
相關問題