我为什么要避免使用〜> 'Gemfile'文件中的表达式

时间:2015-07-23 03:27:33

标签: ruby-on-rails ruby rubygems

我正在做一个关于ruby on rails的在线课程,每当他们向我们展示如何在安装前向Gemfile添加gem时他们说'不添加〜>或=<在号码版本之前签名。但是当我阅读这些宝石的文档时,他们会说要添加它,包括这个标志。

即。 bootstrap-sass gem

1。根据文档:gem'bootstrap-sass','〜> 4.3.3'

2. 根据在线课程:gem'bootstrap-sass','4.3.3'

这个标志的含义是什么?我为什么要避免使用它?

2 个答案:

答案 0 :(得分:2)

这些符号是bundler's documentation的版本说明符:

  

大多数版本说明符,例如> = 1.0,都是不言自明的。说明符〜>具有特殊意义,通过实例最佳显示。 〜> 2.0.3与> = 2.0.3相同且< 2.1。 〜> 2.1与> = 2.1并且< 3.0。 〜> 2.2.beta将匹配预发布版本,如2.2.beta.12。

答案 1 :(得分:1)

我相信指定版本号,以便可以根据http://semver.org执行不间断更新。使用a.b.c样式版本号,某个地方的数字代表主要版本。对主要版本的更改可包括非向后兼容的更改。 b位置的数字是次要版本号。对次要版本的更改可以包括改进,但没有向后不兼容的中断(理论上)。 c位置的版本号表示补丁版本,用于错误修复和补丁。因此,为了相信如果我们捆绑更新你不会破坏宝石,使用〜来指定宝石版本是一个好习惯。实际规则在上面的答案中,所以我不会在这里重复。但请记住,这不是一个硬性规则。可能有宝石严格遵循semver风格。因此,有些人通过指定确切的版本号来交换风险,获得补丁和改进更新的好处。