【问题标题】:Conditional compilation in ElixirElixir 中的条件编译
【发布时间】:2018-02-01 15:06:10
【问题描述】:

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

【问题讨论】:

    标签: elixir


    【解决方案1】:

    Phoenix 解决这个问题的方法是针对不同的环境在mix.exs 中为elixirc_paths 指定不同的值。实现这一目标的方法如下:

    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/ 中(您可能希望为此使用更好的名称...)。

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 2018-03-14
      • 2023-03-04
      • 2012-10-08
      • 2012-06-23
      相关资源
      最近更新 更多