语义化版本

Posted CNundefined

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语义化版本相关的知识,希望对你有一定的参考价值。

之前就觉得为什么 github 上的大部分东西都是 1.0.1、1.11.1 甚至 0.11.1 这种奇葩的版本。为什么 jQuery 1.9.9 之后不是 2.0.0 而是 1.10.0。而且在 npm init 的时候不能输入 1 或 1.0 这样的版本,就算你手动修改了 package.json 里的版本之后,就无法安装其他模块,报 Invalid version: "1.0" 无效版本错误。

相信这些问题不仅仅只有我疑问过吧。今天学习 node 模块源码的时候,翻到了个 semver 模块,看到了对于版本的处理,然后找到了《语义化版本 2.0.0》官方文档。

语义化版本

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

都大一统吧

我之前一直都是 1.0,1.1,这样命名的,npm 下没办法才用 1.0.0。现在知道为什么了,突然感觉我之前好蠢。 如果大家都遵循这个规范后,看一眼就知道这次更新大概是做了什么调整了,是加了新东西,还是修复bug,还是完全不兼容的重构。用户就知道这次的东西是能直接升级的,还是需要修改自己的代码才能升级的。

希望和我一样不知道的朋友,赶紧都规范起来吧。

以上是关于语义化版本的主要内容,如果未能解决你的问题,请参考以下文章

语义版本控制在啥版本下进行版本化?

语义化版本号规则

语义化版本控制规范(SemVer)

语义化版本控制的规范(转载)

版本号严格遵守semver语义化标准

npm包使用语义化版本号