npm 语义版本控制
Contents
版本号
版本一般被分解 3 个数字:x.y.z
。例如3.14.1
, 0.42.0
, 2.7.18
。
-
major
主版本号:做了不兼容的 API 修改。 -
minor
次版本号:做了向下兼容的功能性新增。 -
patch
补丁版本号:做了向下兼容的问题修正。名称 解释 major 主版本号。新的架构调整,做了不兼容的 API 修改,不兼容老版本。 minor 次版本号。新增功能,兼容老版本。 patch 修补版本号。修复bug,兼容老版本。
版本符号
符号 | 解释 | 示例 |
---|---|---|
version | 必须匹配某个版本 | 1.1.2,表示必须依赖1.1.2版 |
>version | 必须大于某个版本 | >1.1.2,表示必须大于1.1.2版 |
>=version | 可大于或等于某个版本 | >=1.1.2,表示可以等于1.1.2,也可以大于1.1.2版本 |
<version | 必须小于某个版本 | <1.1.2,表示必须小于1.1.2版本 |
<=version | 可以小于或等于某个版本 | <=1.1.2,表示可以等于1.1.2,也可以小于1.1.2版本 |
~version | 会匹配最近的小版本依赖包如果minor版本号指定了,那么minor版本号不变,而patch版本号任意如果minor和patch版本号未指定,那么minor和patch版本号任意 | ~1.1.2,表示>=1.1.2 <1.2.0,可以是1.1.2,1.1.3,1.1.4,…..,1.1.n ~1.1,表示>=1.1.0 <1.2.0,可以是同上~1,表示>=1.0.0 <2.0.0,可以是1.0.0,1.0.1,1.0.2,…..,1.0.n,1.1.n,1.2.n,…..,1.n.n |
^version | 会匹配最新的大版本依赖包如果缺少某个版本号,则这个版本号的位置可以任意。表示安装1.x.x的最新版本(不低于1.2.3,包括1.3.0),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。(主版本) | ^1.1.2 ,表示>=1.1.2 <2.0.0,可以是1.1.2,1.1.3,…..,1.1.n,1.2.n,…..,1.n.n^0.2.3 ,表示>=0.2.3 <0.3.0,可以是0.2.3,0.2.4,…..,0.2.n^0.0,表示 >=0.0.0 <0.1.0,可以是0.0.0,0.0.1,…..,0.0.n |
x-range | x的位置表示任意版本 | 1.2.x,表示可以1.2.0,1.2.1,…..,1.2.n |
*-range | 任意版本,““也表示任意版本 | *,表示>=0.0.0的任意版本 |
version1 - version2 | 大于等于version1,小于等于version2 | 1.1.2 - 1.3.1,表示包括1.1.2和1.3.1以及他们之间的任意版本 |
range1||range2 | 满足range1或者满足range2,可以多个范围 | |
latest | 安装最新的版本 |