【问题标题】:Why does MIX dependencies have a "~>" before the semantic version of the dependency?为什么 MIX 依赖在依赖的语义版本之前有一个“~>”?
【发布时间】:2018-05-03 19:19:55
【问题描述】:

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

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

为什么它需要有“~>”而不是元组第二部分的简单版本。

我看到如果它从 git 获取依赖,你可以这样写依赖:

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

【问题讨论】:

    标签: elixir elixir-mix


    【解决方案1】:

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

    来自文档:

    # 2.0.0 and later until 2.1.0
    ">= 2.0.0 and < 2.1.0"
    

    由于上面的例子是这样一个常见的需求,所以可以表示为:

    "~> 2.0.0"
    

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-25
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 2020-11-28
      • 2017-08-01
      相关资源
      最近更新 更多