Elixir中的条件编译

Elixir中的条件编译,elixir,Elixir,我有一个Elixir模块,其中包含一个演示,我在开发和与其他系统的集成测试中使用它。我不希望为prod环境编译该模块。我是否可以使用mix/config的一些可爱技巧来确保此模块在某些环境下不可用?Phoenix解决此问题的方法是为mix.exs中的elixirc\u路径指定不同的值,以适应不同的环境。以下是实现这一目标的方法: def project do [ .., elixirc_paths: elixirc_paths(Mix.env), .., ] en

我有一个Elixir模块,其中包含一个演示,我在开发和与其他系统的集成测试中使用它。我不希望为prod环境编译该模块。我是否可以使用mix/config的一些可爱技巧来确保此模块在某些环境下不可用?

Phoenix解决此问题的方法是为
mix.exs
中的
elixirc\u路径指定不同的值,以适应不同的环境。以下是实现这一目标的方法:

def project do
  [
    ..,
    elixirc_paths: elixirc_paths(Mix.env),
    ..,
  ]
end

defp elixirc_paths(:prod), do: ["lib"]
defp elixirc_paths(_),     do: ["lib", "not-prod"]
现在,将您不希望出现在
:prod
中的
.ex
文件放入
/not prod/
中(您可能希望对此使用更好的名称…)