nodejs的package.json定義了一個模塊,包括其依賴關係的一個簡單的JSON文件,該文件可以包含多個不同的指令來告訴Node包管理器如何處理模塊。 dependencies則表示此模塊依賴的模塊和版本,其中常常可以看到類似 ^1.2.0 或 ~1.2.0 這樣的版本範圍指示。 首先,一個 ...
nodejs的package.json定義了一個模塊,包括其依賴關係的一個簡單的JSON文件,該文件可以包含多個不同的指令來告訴Node包管理器如何處理模塊。 dependencies則表示此模塊依賴的模塊和版本,其中常常可以看到類似 ^1.2.0 或 ~1.2.0 這樣的版本範圍指示。
首先,一個完整的版本號組表示為: [主要版本號,次要版本號,補丁版本號]
1. 用 ~ 指示範圍
版本號中如果指定了主要版本、次要版本,則只允許補丁版本升級;
如果只指定了主要版本,則允許次要版本、補丁版本升級。
~1.2.3 指定了主要、次要版本,所以最高可升級到1.2.9
~1 指定了主要版本,則做高可升級到1.9.9
~1.2.3-beta.2 >=1.2.3-beta.2 < 1.3.0
(註:1.2.3版允許高於beta.2的beta版,但1.2.4-beta.2不被允許,因為是屬於另一個版本號組的beta版本。)
2. 用 ^ 指定範圍
允許不會改變最左邊的不為零的版本號的版本提升,也就是說,^1.0.0允許次要、補丁版本升級,^0.1.0允許補丁版本升級,^0.0.x 不允許升級。
^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
^1.2.3-beta.2 >=1.2.3-beta.2 < 2.0.0
允許1.2.3 版的高於beta-2 的beta版本。
^0.0.3-beta.2 >=0.0.3-beta.2 < 0.0.4
只允許0.0.3 版的高於beta-2 的版本
當解析帶有^的版本範圍時,補丁版本號缺少會補 0,但是會靈活的處理,即主要、次要版本號都為 0 也可以。
^1.2.x >= 1.2.0 < 2.0.0
^1.x >= 1.0.0 < 2.0.0
^0.0.x >= 0.0.0 < 0.1.0
^0.0 >= 0.0.0 < 0.1.0
^0.x >= 0.0.0 < 1.0.0
參考鏈接:http://blog.csdn.net/kaosini/article/details/50353375