gpt4 book ai didi

elixir - 在生产环境中相当于Mix.env/0?

转载 作者:行者123 更新时间:2023-12-03 12:31:47 27 4
gpt4 key购买 nike

Mix.env / 0可以在mix phoenix.server中正常工作,但是无法在使用exrm构建的生产环境中调用。这是有道理的,因为在发行版本中未包含mix,但是Mix.env / 0是否等效?

(UndefinedFunctionError) undefined function Mix.env/0 (module Mix is not available)

我在某些代码中使用Mix.env / 0这样的:
if Mix.env == :dev do
# xxxxxx
else
# xxxxxx
end

最佳答案

您可以简单地为环境定义一个配置值:
config/prod.exs

config :my_app, :environment, :prod
config/dev.exs
config :my_app, :environment, :dev

然后,您可以使用 Application.get_env/3检查该值
if Application.get_env(:my_app, :environment) == :dev do

但是,我建议您提供更多背景信息。假设您要在生产环境中有条件地应用身份验证插件,可以将配置设置为:
config :my_app, MyApp.Authentication,
active: true

if Application.get_env(:my_app, MyApp.Authentication) |> Keyword.get(:active) do
#add the plug

这样,您的条件是基于功能的,而不是基于环境的。无论环境如何,都可以打开和关闭它们。

关于elixir - 在生产环境中相当于Mix.env/0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35888575/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com