这是官网的话
Caret#
Der ^-Operator verhält sich sehr ähnlich, aber er orientiert sich eher an der semantischen Versionierung und lässt immer unterbrechungsfreie Aktualisierungen zu. Beispielsweise ist ^1.2.3 äquivalent zu >=1.2.3 <2.0.0, da keine der Versionen bis 2.0 die Abwärtskompatibilität beeinträchtigen sollte. Bei Versionen vor 1.0 geht es auch um Sicherheit und behandelt ^0.3 als >=0.3.0 <0.4.0.
Dies ist der empfohlene Operator für maximale Interoperabilität beim Schreiben von Bibliothekscode.
Beispiel: ^1.2.3
Komponist
这是官网的话
Caret#
Der ^-Operator verhält sich sehr ähnlich, aber er orientiert sich eher an der semantischen Versionierung und lässt immer unterbrechungsfreie Aktualisierungen zu. Beispielsweise ist ^1.2.3 äquivalent zu >=1.2.3 <2.0.0, da keine der Versionen bis 2.0 die Abwärtskompatibilität beeinträchtigen sollte. Bei Versionen vor 1.0 geht es auch um Sicherheit und behandelt ^0.3 als >=0.3.0 <0.4.0.
Dies ist der empfohlene Operator für maximale Interoperabilität beim Schreiben von Bibliothekscode.
Beispiel: ^1.2.3
Komponist
@查尔斯 ~
和^
的意思很接近,在x.y
的情况下是一样的都是代表x.y <= 版本号 < (x 1).0
,但是在版本号是x.y.z
的情况下有区别,举个例子吧:
~1.2.3
代表 1.2.3 <= 版本号 < 1.3.0
^1.2.3
代表 1.2.3 <= 版本号 < 2.0.0
Beschreibung: https://getcomposer.org/doc/a...
感谢 @北月武士 指正
^符号意思,用于匹配下一个重要版本
举例:
composer.json
<code>{ "require": { "topthink/framework": "^5.0-rc1" } }</code>
执行sudo Composer Install 以后效果如下
匹配到了Komponist库详情页的最新一个重要版本
https://packagist.org/package...
另外备注下:犯这个错误是因为一个前提条件, 我一般只关心次版本号,所以如果你一直指定~x.y和^x.y的确是一样的, 哪怕库的版本号就是用x.y.z的版本规范命名的