为什么 MIX 依赖项在依赖项的语义版本之前有一个“~>”?
Why does MIX dependencies have a "~>" before the semantic version of the dependency?
在 mix.exs
上,您可以声明如下依赖项:
def deps do
[{:plug, "~> 1.0"}]
end
为什么元组的第二部分需要有“~>”而不是简单的版本。
我看到如果它从git获取依赖,你可以这样写依赖:
def deps do
[{:plug, git: "git://github.com/elixir-lang/plug.git"}]
end
Version 模块支持这个奇特的箭头。它以数字设置的精度对您的依赖项进行舍入,该数字是最具体的数字的左邻居。
来自文档:
# 2.0.0 and later until 2.1.0
">= 2.0.0 and < 2.1.0"
Since the example above is such a common requirement, it can be expressed as:
"~> 2.0.0"
查看 Version
模块中的更多示例。
基本上这是为了您的方便,因为它允许您在任何时候自动升级您的开发人员 mix deps.upgrade
,但它允许您控制升级 - 您可以下载升级,这会使您当前的代码库崩溃等。
在 mix.exs
上,您可以声明如下依赖项:
def deps do
[{:plug, "~> 1.0"}]
end
为什么元组的第二部分需要有“~>”而不是简单的版本。
我看到如果它从git获取依赖,你可以这样写依赖:
def deps do
[{:plug, git: "git://github.com/elixir-lang/plug.git"}]
end
Version 模块支持这个奇特的箭头。它以数字设置的精度对您的依赖项进行舍入,该数字是最具体的数字的左邻居。
来自文档:
# 2.0.0 and later until 2.1.0 ">= 2.0.0 and < 2.1.0"
Since the example above is such a common requirement, it can be expressed as:
"~> 2.0.0"
查看 Version
模块中的更多示例。
基本上这是为了您的方便,因为它允许您在任何时候自动升级您的开发人员 mix deps.upgrade
,但它允许您控制升级 - 您可以下载升级,这会使您当前的代码库崩溃等。