Contents

npm 语义版本控制

版本号

版本一般被分解 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 安装最新的版本