為什么說“比較符”和“通配符”相結(jié)合的版本約束是壞主意?

2018-08-12 22:00 更新

為什么說“比較符”和“通配符”相結(jié)合的版本約束是壞主意?

這是人們常犯的一個(gè)錯(cuò)誤,定義了類似 >=2.*>=1.1.* 的版本約束。

通過思考它所表示的真正含義,你很快就會發(fā)現(xiàn),它并沒有多大意義。如果我們分解 >=2.*,你會得到兩個(gè)部分:

  • >=2 表示資源包應(yīng)該是 2.0.0 或以上版本。
  • 2.* 表示資源包版本應(yīng)該介于 2.0.0 (含)和 3.0.0(不含)之間。

正如你所看到的,要同時(shí)滿足這兩個(gè)規(guī)則包版本必須 >=2.0.0,但它是無法判斷的,因?yàn)楫?dāng)你這么寫的時(shí)候,你究竟是想要包含 3.0.0 版本還是不包含?它應(yīng)該進(jìn)行匹配嗎?因?yàn)槟愣x了 >=2,但同時(shí)你又限制它為 2.*。

出于這個(gè)原因,Composer 將拋出一個(gè)錯(cuò)誤,并告訴你這是無效的。想要確切的表達(dá)你意思,最簡單的方法就是僅使用“比較符”和“通配符”其中的一種來定義約束。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號