npm package.json版本控制中的“^”是什么意思?

33qvvth1  于 2023-08-06  发布在  其他
关注(0)|答案(3)|浏览(186)

我最近运行了带有--save-dev标志的npm install(npm 1.4.3),它添加到我的package.json中的包条目都是以^开头的,例如:"^2.5.0"。我以前从未在我使用过的npm的早期版本中看到过这种情况,而且我找不到任何关于这种表示法的文档,只有我已经熟悉的表示法,例如:~>=等。这是什么意思?

mepcadol

mepcadol1#

引用自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版本被认为是兼容的”

也就是说,我建议使用“~”,因为它具有更直观的语义,请参阅npm/npm#4587中的讨论。

0md85ypi

0md85ypi2#

来自版本范围

插入符号范围^1.2.3 ^0.2.5 ^0.0.4

允许不修改[major,minor,patch]元组中最左边的非零数字的更改。换句话说,这允许对1.0.0及以上版本进行补丁和次要更新,对0.X >=0.1.0版本进行补丁更新,对0.0.X版本不进行更新。

波浪线范围~1.2.3 ~1.2 ~1

如果在比较器上指定了次要版本,则允许补丁程序级别的更改。如果不允许,则允许次要级别更改。

xqkwcwgp

xqkwcwgp3#

在高级别(或快速检查):
^2.4.5 = 2.x.x
~2.4.5 = 2.4.x

相关问题