惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
WordPress大学
WordPress大学
博客园 - 【当耐特】
The Cloudflare Blog
B
Blog
Last Week in AI
Last Week in AI
小众软件
小众软件
量子位
S
SegmentFault 最新的问题
V
Visual Studio Blog
博客园 - 叶小钗
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
A
About on SuperTechFans
雷峰网
雷峰网
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Martin Fowler
Martin Fowler

博客园 - 北山秋叶

macos 上的 zsh 启动问题记录 Keychron Max 键盘改键指南 Github 命令在 命令行 中访问特别慢的解决方法 ai 随想 影响记忆 monorepo(多包)管理中, 引入的 css 文件丢失的问题 (或者说package.json中的 sideEffects 的探索) 浏览器插件 Obsidian web 与 Obsidian 插件 local rest api 结合配置过程记录 mac 下检测网络状态的命令 git clone 需要用户名密码的一个小问题 怎么才能写一个好代码 yeoman编写自己的脚手架 await和promise结合使用的问题 有趣的二分 ngix反向代理-之反向 redux和flux究竟有什么不同, 说点自己的理解 npm发包记录 由一个聚焦-focus-事件异常跟踪引起的总结 git查看分支的几个方法 test-your-mind-快速测试自己的代码 给Promise在外部增加断点 js中调试技巧-打印日志信息
package.json中的版本号
北山秋叶 · 2020-10-11 · via 博客园 - 北山秋叶

一直对 package.json 文件中的版本号处于一个清晰与模糊之间的界限
也知道这个版本号是遵循 semver的规则.
但是这个规则中是没有比如 ^~ 等标志的规定的. 所以具体到 package.json 中这些版本是什么意思呢?

我列举了一下, 这其中的场景, 直接给出解释. 不过在此之前, 需要简单说一下, 详细的可以参照我上边说的 semver 的解释.

版本号, 大体上分为 3 个部分 a.b.c-xyz

  • a 为主版本号, 不过一般版本号 0 不作为正式版本发布, 并且版本之间不一定实现兼容
  • b 为次版本号, 在此版本上有一些功能性的区分
  • c 为修订号, 可以进行比如一些bug上的修正
  • xyz 的部分为一些更细节的标注等,不过这些有标注的版本号按照规定是低于正式的版本号的, 比如 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