如何仅在生产环境中将模块插入控制器?

leo*_*eon 2 elixir phoenix-framework

如何仅在生产环境中将模块插入控制器?

例:

plug BasicAuth, realm: "Admin Area", username: "admin", password: "pass"
Run Code Online (Sandbox Code Playgroud)

Jas*_*son 7

虽然@ whatyouhide的回答是正确的,但Mix.env在混合任务之外的项目中要小心使用.如果您决定使用Exrm或relx来构建OTP版本,则不会包含混合库,这会在启动时使您的应用程序崩溃.

作为替代方案,您可以:env使用其中的env值为每个环境的相应配置文件添加一个密钥,然后像使用它一样使用它Mix.env.

  • 要稍微扩展一下,您甚至可以使用特定于该功能而不是环境的密钥.例如,具有带有"true"或"false"值的`:admin_auth`键.这样,该功能与您的环境无关,因此可以更轻松地在开发中启用该功能以确保其正常工作. (2认同)