为什么MIX依赖项有“〜>”在依赖的语义版本之前?

时间:2017-11-20 14:24:19

标签: elixir mix

mix.exs上,您可以声明依赖项,如:

def deps do
  [{:plug, "~> 1.0"}]
end

为什么需要“〜>”而不仅仅是元组第二部分的版本。

我已经看到,如果它从git获得依赖,你可以编写依赖,如:

def deps do
  [{:plug, git: "git://github.com/elixir-lang/plug.git"}]
end

1 个答案:

答案 0 :(得分:6)

Version模块支持这个花哨的箭头。它使用由数字设置的精度来舍入您的依赖关系,该数字与最具体的数字相邻。

示例:

~> 2.0.0 

装置

  

获取2.0.0和2.1.0之间的版本,因为中心的0是最具体的左邻居。

查看Version模块中的更多示例。

基本上这是为了您的方便,因为它允许您在mix deps.upgrade时自动升级您的deps,但它可以让您控制升级 - 您可以下载升级,这会崩溃您当前的代码库等。