所有的版本都有 3 個數(shù)字:x.y.z
第一個數(shù)字是主版本;
第二個數(shù)字是次版本厕氨;
第三個數(shù)字是補丁版本咐熙。
當發(fā)布新的版本時,不僅僅是隨心所欲地增加數(shù)字询刹,還要遵循以下規(guī)則:
- 當進行不兼容的 API 更改時,則升級主版本萎坷。
- 當以向后兼容的方式添加功能時范抓,則升級次版本。
- 當進行向后兼容的缺陷修復時食铐,則升級補丁版本匕垫。
該約定在所有編程語言中均被采用,每個 npm 軟件包都必須遵守該約定虐呻,整個系統(tǒng)都依賴于此象泵。
npm 設(shè)置了一些規(guī)則寞秃,可用于在 package.json 文件中選擇要將軟件包更新到的版本(當運行 npm update 時)。
規(guī)則使用了這些符號:
^偶惠、~春寿、>、>=忽孽、<绑改、<=、=兄一、-厘线、||
這些規(guī)則的詳情如下:
- ^: 只會執(zhí)行不更改最左邊非零數(shù)字的更新。 如果寫入的是
^0.13.0
出革,則當運行npm update
時造壮,可以更新到 0.13.1、0.13.2 等骂束,但不能更新到 0.14.0 或更高版本耳璧。 如果寫入的是^1.13.0
,則當運行npm update
時展箱,可以更新到 1.13.1旨枯、1.14.0 等,但不能更新到 2.0.0 或更高版本混驰。 - ~: 如果寫入的是
?0.13.0
攀隔,則當運行npm update
時,會更新到補丁版本:即 0.13.1 可以账胧,但 0.14.0 不可以。 - >: 接受高于指定版本的任何版本先紫。
- >=: 接受等于或高于指定版本的任何版本治泥。
- <=: 接受等于或低于指定版本的任何版本。
- <: 接受低于指定版本的任何版本遮精。
- =: 接受確切的版本居夹。
- -: 接受一定范圍的版本。例如:
2.1.0 - 2.6.2
本冲。 - ||: 組合集合准脂。例如
< 2.1 || > 2.6
。
可以合并其中的一些符號檬洞,例如1.0.0 || >=1.1.0 <1.2.0
狸膏,即使用 1.0.0 或從 1.1.0 開始但低于 1.2.0 的版本。
還有其他的規(guī)則:
- 無符號: 僅接受指定的特定版本(例如 1.2.1)添怔。
- latest: 使用可用的最新版本湾戳。