^ package.json依赖版本

在symbol.json的依赖版本中,^符号是什么意思?

我无法在文档中find它。

例如:

"dependencies": { "grunt": "^0.4.4", ... } 

我在这里find了答案:

另一方面,插入符号更轻松。 它会将您更新到最新的主要版本(第一个数字)。 ^1.2.3将匹配包括1.3.0在内的任何1.xx版本,但会在2.0.0版本上2.0.0 。 npm的语义版本parsing器澄清了这个区别:

 ~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.22.0.0-beta不会。

  • ^0.1.3 := >=0.1.3-0 <0.2.0-0 与0.1.3兼容
    0.xx版本是特殊的:第一个非零组件表示潜在的中断更改,这意味着插入符号操作符与从指定版本开始的具有相同第一个非零组件的任何版本匹配。

  • ^0.0.2 := =0.0.2 只有版本0.0.2被认为是兼容的