前言
以前在学习vue的时候经常行的懵逼,啊这个版本前面的到底是什么呀 ? 不知道大家有没有和我一样的问题。找了挺多资料的,这篇文章主要是笔者工程化系统学习的一个记录也是一个开篇,我会放在我的专栏中,喜欢的可以关注和我一起学习😜
简介
semver 是 语义化版本(Semantic Versioning)规范 的一个实现,目前是由 npm 的团队维护,实现了版本和版本范围的解析、计算、比较。
什么是语义化?
约定了每一个数字,每一个版本号的数字,代表的是什么,当我们对版本进行升级的时候,我们不需要知道版本是什么,只需要关心版本号的变化,根据变化可以轻松知道每一次的变更大概会做了什么内容。
在这套约定下,版本号及其更新方式包含了相邻版本间的底层代码和修改内容的信息。 你就可以透过修改相应的版本号来向大家说明你的修改
了解版本号格式
固定版本号
这里我们就拿vue来做个简单的小栗子
Vue @3.2.12
- 主版本号【major】: 当做了不兼容的API修改
- 次版本号【minor】: 当做了向下兼容的功能性新增
- 修订号 【patch】: 当做了向下兼容的问题修成
例如
从vue2到了vue3,这个时候你的版本就是进行了一次破坏性的变更,也就是一些不兼容api的改变。
从vue3.1.x -> vue3.2.x
的时候就是添加了一些新的功能,例如我们熟知的setup语法糖。
最后一个patch一般是解决了某个bug的时候就会升级这个版本号
注意: 升级主版本号的时候,次版本号和修订号都需要重置为0。升级次版本号的时候修订版本号需要重置为0。
semver中的符号
^
表示同一个主版本号中,不小于指定版本号的版本 ^3.2.12
锁定主版本号
~
锁定主版本号和次版本号,修订版本号向上。~3.2.12
最终可能安装 3.2.13
>、<、=、>=、<=
:用来指定一个版本号范围 例如:3.1.0-3.2.12
*、x
: 表示通配符 3.x
npm 命令操作版本号
pnpm version patch
修订号版本 + 1
pnpm version minor
次版本 + 1 修订版本清零
pnpm version major
主版本 + 1 次版本和修订版本清零
结尾
好了,本篇【从零开始的前端工程化】semver语义化版本规范就到这里结束了,我是邵小白,一个在前端领域摸爬滚打的大三学生,欢迎👍评论。