"foo": "~0.2.1"
"foo": ">= 0.2.1"
有什么区别?
Stack Overflow不会让我提交上述问题,因为它太简洁了,所以这里有一些毫无意义的填充文字。 Lalalala。这个网站的规则是愚蠢的。
答案 0 :(得分:1)
>=
表示与上述版本相同或更大的任何版本。例如,42.42.42
可以满足>= 0.2.1
要求(无论它在实践中多么不相容)。此外,这意味着0.2.1-beta
不正常,因为beta在最终发布之前。
~
意味着合理地接近指定版本(如同,兼容)。它采用语义版本控制定义,因此任何主要版本跳转都不被认为是兼容的(高于指定版本中的最后一个数字)。例如,42.42.42
或0.3.0
对~0.2.1
要求不合适。但是,0.2.1-beta
或0.2.42
是允许的,因为它与最终版本相当接近。
答案 1 :(得分:1)
Tilde意味着下一次重要的发布。在您的情况下,它相当于> = 2.0,< 3.0。
一种简单的经验法则是〜允许最后一位数字上升。例如~2.2表示2.2和任何2.x,其中x是2或更高。 〜2.1.3也是任何2.1.x,其中x是3或以上。
http://getcomposer.org/doc/01-basic-usage.md#package-versions