答案 0 :(得分:30)
我找到了答案here:
另一方面,插入符号更放松。它会将您更新为最新的主要版本(第一个数字)。^1.2.3
将与包括1.x.x
在内的任何1.3.0
版本相匹配,但会暂停2.0.0
。 npm的semantic versioning parser澄清了区别:~1.2.3 := >=1.2.3-0 <1.3.0-0 "Reasonably close to 1.2.3". ^1.2.3 := >=1.2.3-0 <2.0.0-0 "Compatible with 1.2.3".
- isaacs / node-semver(强调添加)
isaacs/node-semver
的相关要点是:
^1.2.3
:= >=1.2.3-0 <2.0.0-0
与1.2.3兼容。
使用插入符号运算符时,将支持指定版本(包括预发行版)中的任何内容,但不包括下一个主要版本(或其预发行版)。 1.5.1
将满足^1.2.3
,而1.2.2
和2.0.0-beta
则不会。
^0.1.3
:= >=0.1.3-0 <0.2.0-0
与0.1.3相容。
0.x.x版本是特殊的:第一个非零组件表示可能存在重大更改,这意味着插入符操作符匹配从指定版本开始的具有相同的第一个非零组件的任何版本。
^0.0.2
:= =0.0.2
仅将版本0.0.2视为兼容