package.json依赖项中> =和〜之间有什么区别?

时间:2014-01-06 14:16:13

标签: npm

"foo": "~0.2.1"
"foo": ">= 0.2.1"

有什么区别?


Stack Overflow不会让我提交上述问题,因为它太简洁了,所以这里有一些毫无意义的填充文字。 Lalalala。这个网站的规则是愚蠢的。

2 个答案:

答案 0 :(得分:1)

>=表示与上述版本相同或更大的任何版本。例如,42.42.42可以满足>= 0.2.1要求(无论它在实践中多么不相容)。此外,这意味着0.2.1-beta不正常,因为beta在最终发布之前。

~意味着合理地接近指定版本(如同,兼容)。它采用语义版本控制定义,因此任何主要版本跳转都不被认为是兼容的(高于指定版本中的最后一个数字)。例如,42.42.420.3.0~0.2.1要求不合适。但是,0.2.1-beta0.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