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

2018-08-12 22:00 更新

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

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

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

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

正如你所看到的,要同時滿足這兩個規(guī)則包版本必須 >=2.0.0,但它是無法判斷的,因為當你這么寫的時候,你究竟是想要包含 3.0.0 版本還是不包含?它應該進行匹配嗎?因為你定義了 >=2,但同時你又限制它為 2.*。

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

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號