安装Elixir依赖项有多种方法。我想知道在下列情况下会发生什么情况:
1.
mix deps.get --only prod那么,究竟获取了哪些依赖项呢?
2.
defp deps do
[
{:credo, "~> 0.8", only: ~w(dev)a, runtime: false},
]
endonly选项对特定依赖项的影响如何?
3.
def project do
[
# ...
deps: deps(Mix.env()),
]
end如果我们指定这样的依赖项,那么有什么区别呢?
我有点搞不懂什么时候该用什么来定义依赖关系。
发布于 2017-06-16 14:57:26
我要用相反的顺序来解决这些问题。
如果在多个环境中使用依赖项,则使用deps(Mix.env)将强制您多次指定每个依赖项。与…有关的东西
def deps(:dev) do
[
{:ecto, "~> 2.1"}
{:credo, "~> 0.8", runtime: false}
]
end
def deps(:test) do
[
{:ecto, "~> 2.1"}
]
end我承认,我甚至不知道这是否有效,但是如果您只指定了:only选项,那么已经为您处理的内容添加了太多的代码。
使用:only可以指定应该在哪些环境中使用依赖项。在您的示例中,{:credo, "~> 0.8", only: [:dev], runtime: false}告诉mix只应该在dev环境中使用credo包。如果不包括:only选项,则包将在所有环境中使用。
$ mix deps.get --only prod只检索与生产环境相关的包。从前面的示例中,credo包将不会被检索,因为您告诉mix只应该在dev环境中使用credo。
https://stackoverflow.com/questions/44591922
复制相似问题