












一直对 package.json 文件中的版本号处于一个清晰与模糊之间的界限
也知道这个版本号是遵循 semver的规则.
但是这个规则中是没有比如 ^ 和 ~ 等标志的规定的. 所以具体到 package.json 中这些版本是什么意思呢?
我列举了一下, 这其中的场景, 直接给出解释. 不过在此之前, 需要简单说一下, 详细的可以参照我上边说的 semver 的解释.
版本号, 大体上分为 3 个部分 a.b.c-xyz
0 不作为正式版本发布, 并且版本之间不一定实现兼容1.1.1-beta 是低于 1.1.1 的.说一些经常让人费解的
^和&
^ 表示与版本兼容, 兼容就很有意思, 什么叫兼容呢, 按照 semver 中第一个号码之间我们认为是不兼容的, 即 1.0.0 与 2.0.0 是不一定兼容的. 但是存在一些场景,比如 1.1.0 兼容版本从最左边的非0版本号算起, 即 ^1.1.0 表示 >=1.1.0 <2.0.0. ^0.0.3 表示 >=0.0.3 <0.0.4~ 表示约等于版本, 即 如果存在次版本号,则允许修订号为更高版,否则允许次版本号为更高版。人话的意思就是说 ~1.2.0 存在 次版本号 2, 那么表示为 >=1.2.0 <1.3.0, 即修改修订号; ~1.0.0 只有最高版本号, 那么表示 >=1.0.0 <2.0.0, 即修改次版本号
^表示兼容,(我们从最左侧的非0版本号算起);~表示约等于, 我们将"最右侧"的版本号进行"约算"
下边就列举一些版本号的一些具体解释
| 表达式 | 范围 | 解释 |
|---|---|---|
| 1.2.3 | 1.2.3 | 精确匹配1.2.3版本 |
| ~1.2.3 | >=1.2.3 <1.3.0 | 将"最右侧"的进行约等 |
| ~1.0.0 | >=1.0.0 <2.0.0 | |
| ^1.2.3 | >=1.2.3 <2.0.0 | 将最左侧的非0以下的位数进行兼容 |
| ^0.0.3 | >=0.0.3 <0.0.4 |
其他的情况就比较好理解了.
X x * 表示通配
>= <= - 直接进行理解就可以了
附上一些参考链接:
semver
看看俺 – KanKanAn.com
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。