gpt4 book ai didi

hex - 如何获取每个环境的 Elixir 依赖项?

转载 作者:行者123 更新时间:2023-12-02 08:48:12 25 4
gpt4 key购买 nike

有多种方法可以安装 Elixir 依赖项。我想知道以下情况会发生什么:

1.

mix deps.get --only prod

那么到底要获取什么依赖项?

2.

defp deps do
[
{:credo, "~> 0.8", only: ~w(dev)a, runtime: false},
]
end

only 选项如何影响特定依赖项?

3.

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

如果我们这样指定依赖项,会有什么区别?

<小时/>

我有点困惑何时使用定义依赖项的内容。

最佳答案

当你写下这个:

mix deps.get --only prod

它将获取 prod 环境的所有依赖项,即没有 only 的依赖项选项和依赖项,其中 only选项已指定并包含 :prod (例如 {:some_dep, "~> 0.8", only: [:prod]} )

当你写下这个:

defp deps do
[
{:some_dep, "~> 0.8"}
]
end

这告诉 mix 安装 some_dep在它遇到的任何环境中。

当你写下这个:

defp deps do
[
{:another_dep, "~> 0.8", only: [:dev]}
]
end

它告诉 mix 安装 another_dep仅当您的环境为dev时(MIX_ENV=dev)。如果您处于任何其他环境(例如 prod),mix deps.get会简单地忽略another_dep并且不会安装它。

写这个:

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

将导致 ** (CompileError) mix.exs:13: undefined function deps/1因为在你的 mix.exs ,仅 deps/0被定义为。现在你可能会告诉我为什么不实现 deps(:dev) , deps(:prod)等等...好吧,如果您阅读了我之前解释的内容,您会发现这是毫无意义的,因为每个环境的 deps 分离已经得到处理:)

关于hex - 如何获取每个环境的 Elixir 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44591922/

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