在我的composer.json文件中代字号(〜)是什么意思?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (7)

我在我的composer.json文件中有这一行:

"require": {
    ...
    "friendsofsymfony/user-bundle": "~2.0@dev",
    ...
},

代字符~~2.0@dev意思是什么?那是一个占位符,并且将永远取像颠覆1.2.02.2.03.2.0等?没有意义(并且将由*通配符完成)。

composer.json文档不告诉波浪任何事情。

我在问,因为我刚刚阅读了Symfony博客中安全问题,他们建议升级到1.3.3版本。但是搞清楚FOSUserBundle的版本并不那么容易(我找不到包含版本的文件)。

提问于
用户回答回答于

Tilde意味着下一个重要版本。在你的情况下,它相当于>= 2.0, < 3.0

完整的解释在Tilde Version Range文档页面

~操作者通过实例最好的解释:~1.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.0。 另一种看待它的方式是使用~指定最小版本,但允许指定的最后一个数字上升。

用户回答回答于

Tilde运算符对于使用semantic versioning方案对其库进行版本化的项目很有用。

Semantic versioning是更多的指标,评估到next significant release

对于Composer而言,此操作符意味着允许在安装更新时允许次要版本(可能包含修补程序)而不允许使用主要版本(可能不会向后兼容)。

例如:~4.1将允许项目版本,>=4.1<5.0

Credits:http : //dwellupper.io/post/37/using-tilde-range-operator-to-resolve-dependency-version-in-composer-php

扫码关注云+社区