package.json中的版本號


一直對 package.json 文件中的版本號處於一個清晰與模糊之間的界限
也知道這個版本號是遵循 semver的規則.
但是這個規則中是沒有比如 ^~ 等標志的規定的. 所以具體到 package.json 中這些版本是什么意思呢?

我列舉了一下, 這其中的場景, 直接給出解釋. 不過在此之前, 需要簡單說一下, 詳細的可以參照我上邊說的 semver 的解釋.

版本號, 大體上分為 3 個部分 a.b.c-xyz

  • a 為主版本號, 不過一般版本號 0 不作為正式版本發布, 並且版本之間不一定實現兼容
  • b 為次版本號, 在此版本上有一些功能性的區分
  • c 為修訂號, 可以進行比如一些bug上的修正
  • xyz 的部分為一些更細節的標注等,不過這些有標注的版本號按照規定是低於正式的版本號的, 比如 1.1.1-beta 是低於 1.1.1 的.

整體解釋

說一些經常讓人費解的 ^&

  • ^ 表示與版本兼容, 兼容就很有意思, 什么叫兼容呢, 按照 semver 中第一個號碼之間我們認為是不兼容的, 即 1.0.0 與 2.0.0 是不一定兼容的. 但是存在一些場景,比如 1.1.0 兼容版本從最左邊的非0版本號算起, 即 ^1.1.0 表示 >=1.1.0 <2.0.0. ^0.0.3 表示 >=0.0.3 <0.0.4
  • ~ 表示約等於版本, 即 如果存在次版本號,則允許修訂號為更高版,否則允許次版本號為更高版。人話的意思就是說 ~1.2.0 存在 次版本號 2, 那么表示為 >=1.2.0 <1.3.0, 即修改修訂號; ~1.0.0 只有最高版本號, 那么表示 >=1.0.0 <2.0.0, 即修改次版本號

^ 表示兼容,(我們從最左側的非0版本號算起); ~ 表示約等於, 我們將"最右側"的版本號進行"約算"

下邊就列舉一些版本號的一些具體解釋

表達式 范圍 解釋
1.2.3 1.2.3 精確匹配1.2.3版本
~1.2.3 >=1.2.3 <1.3.0 將"最右側"的進行約等
~1.0.0 >=1.0.0 <2.0.0
^1.2.3 >=1.2.3 <2.0.0 將最左側的非0以下的位數進行兼容
^0.0.3 >=0.0.3 <0.0.4

其他的情況就比較好理解了.
X x * 表示通配
>= <= - 直接進行理解就可以了

附上一些參考鏈接:
semver
看看俺 – KanKanAn.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM