"foo": "~0.2.1"
"foo": ">= 0.2.1"
有什么区别?package.json依赖关系中的> =和〜有什么区别?
Stack Overflow不会让我提交上面的问题,因为它太简洁了,所以这里有一些没有意义的填充文本。 Lalalala。这个网站的规则是愚蠢的。
"foo": "~0.2.1"
"foo": ">= 0.2.1"
有什么区别?package.json依赖关系中的> =和〜有什么区别?
Stack Overflow不会让我提交上面的问题,因为它太简洁了,所以这里有一些没有意义的填充文本。 Lalalala。这个网站的规则是愚蠢的。
>=
表示与上述版本相同或更大的任何版本。例如42.42.42
可以和>= 0.2.1
要求一致(不管它在实际中会有多么不兼容)。此外,这意味着0.2.1-beta
不好,因为测试版是在最终发布之前。
~
意味着合理地接近指定的版本(如在,兼容)。它采用语义版本化定义,所以任何主要版本跳转都不被认为是兼容的(高于指定版本中的最后一个数字)。例如,42.42.42
或0.3.0
不符合~0.2.1
的要求。但是,允许使用0.2.1-beta
或0.2.42
,因为它合理地接近最终版本。
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