packagist中〜和^之间有什么区别

时间:2018-02-28 03:21:17

标签: packagist

我对packagist中的'〜'和'^'之间的区别感到有点困惑,

composer.json文件中的代码示例:

 "require": {
             "doctrine/dbal": "^2.6",      //this is using '^' symbol
             "garygreen/pretty-routes": "~0.0.6"    //this is using '~' symbol
            },

有人可以帮我解释一下吗?

1 个答案:

答案 0 :(得分:2)

〜运算符最好通过示例解释:~1.2等于> = 1.2 <2.0.0,而~1.2.3等于> = 1.2.3 <1.3.0。正如您所看到的,它对于尊重语义版本控制的项目非常有用。常见的用法是标记您所依赖的最小次要版本,例如~1.2(允许任何内容,但不包括2.0)。

^运算符的行为非常相似,但它更接近语义版本控制,并且总是允许不间断的更新。例如,^ 1.2.3相当于&gt; = 1.2.3&lt; 2.0.0,因为直到2.0都不会破坏向后兼容性。对于1.0之前的版本,它也考虑到安全性,并将^ 0.3视为&gt; = 0.3.0 <0.4.0。

来自:https://getcomposer.org/doc/articles/versions.md#tilde-version-range-