【W(wǎng)eb前端】npm之版本語法篇

我們可以通過package.json來限定我們想要引用的包的版本范圍,這里描述下相關(guān)的語法,便于在以后查看package.json的時候不會有疑惑:

版本表示

版本只有三段,分別代表: major.minor.patch

  • major:發(fā)生不兼容的API改變時變更這個版本號段
  • minor:以向后兼容的方式增加了一些功能時變更這個版本號段
  • patch:修復(fù)了一些bug但仍保持向后兼容時變更這個版本號段

Prerelease Tag

版本還可以有個預(yù)發(fā)布標(biāo)記(alpha、beta、rc),并以短橫隔開,預(yù)發(fā)布標(biāo)記也可以帶上自己的版本號段,形如: 1.2.3-beta.5
一旦有預(yù)發(fā)布標(biāo)記,那么版本范圍的語法表示就和普通的三段式版本范圍有所不同,其范圍的限定都是在前三段版本major.minor.patch一致的基礎(chǔ)上,并且是相同的預(yù)發(fā)布標(biāo)記情形來對預(yù)發(fā)布版本號段進(jìn)行范圍限定,例如:1.2.3-beta.6是滿足比1.2.3-beta.5要大的版本,但1.2.4或1.2.3-rc.2這樣的都不滿足

版本范圍的語法表示

  • x、X、*這三個用來表示任意數(shù)值(可以用一個開閉區(qū)間來表示)
 * 表示 [0.0.0, ) 即任意版本
1.x 表示 [1.0.0, 2.0.0) 的版本
1.2.X 表示 [1.2.0, 1.3.0) 的版本 
  • 用 X.Y.Z - A.B.C 這樣的方式來表達(dá)版本范圍,缺失的版本號段用x補上
1.2.3 - 2.3.4 即 [1.2.3, 2.3.4],兩個閉區(qū)間 
1.2 - 2.3.4 即 1.2.x - 2.3.4 即 [1.2.0, 2.3.4],也是兩個閉區(qū)間 
1.2.3 - 2.3 即 1.2.3 - 2.3.x 即 [1.2.3, 2.4.0),閉開區(qū)間 
1.2.3 - 2 即 1.2.3 - 2.x.x 即 [1.2.3, 3.0.0),閉開區(qū)間 
  • ~X.Y.Z語法
    允許最右邊明確的版本號段往高發(fā)生改變,保持其余版本號段不變;如果只有單一的明確版本號,那么需保持這個號段不變,其他非明確的可以往高發(fā)生變化
~1.2.3 即 [1.2.3, 1.3.0) 
~1.2 即 [1.2.0, 1.3.0) 和1.2.x一樣
~1 即 [1.0.0, 2.0.0) 和1.x一樣 
~0.2.3 即 [0.2.3, 0.3.0) 
~0.2 即 [0.2.0, 0.3.0) 和 0.2.x一樣 
~0 即 [0.0.0, 1.0.0) 和0.x一樣
~1.2.3-beta.2 即 [1.2.3-beta.2, 1.3.0),注意這種帶預(yù)發(fā)布標(biāo)記要求major.minor.patch三個版本號一樣 
  • ^X.Y.Z語法
    只要最左邊非0的確定版本號段不發(fā)生變化,其他號段可以往高發(fā)生變化,如果確定的版本號段都是0,那么最左邊的0保持不變,其他版本號段往高發(fā)生變化
^1.2.3 即 [1.2.3, 2.0.0)
^0.2.3 即 [0.2.3, 0.3.0)
^0.0.3 即 [0.0.3, 0.0.4)
^0.0.3-beta 即 [0.0.3-beta, 0.0.4),注意需同時滿足預(yù)發(fā)布標(biāo)記版本的要求 
^1.2.x 即 [1.2.0, 2.0.0)
^0.0 即 [0.0.0, 0.1.0) 和 ^0.0.x一樣
^1.x 即 [1.0.0, 2.0.0)
^0.x 即 [0.0.0, 1.0.0)

一般正式版本為1.0.0,那么在版本低于1.0.0的0.x開發(fā)階段,0.2到0.3的變化很有可能是會發(fā)生巨大變化而產(chǎn)生不兼容的,所以^0.2這樣的語法就可以適應(yīng)這種場景

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,076評論 25 708
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,123評論 6 13
  • 1、 我媽剛剛和我說,這可能是長大以后最大的一場病,而最開始的原因僅僅因為感冒發(fā)燒,本以為三天就滿血復(fù)活,而現(xiàn)實是...
    一路呼吸閱讀 118評論 1 0
  • 大學(xué)從軍訓(xùn)開始就開始注意一個女孩,她的頭發(fā)長長的,我覺得我喜歡上了她,再后來,我發(fā)現(xiàn)我不是喜歡上了他,而是愛上了她...
    文小濤閱讀 364評論 0 0