语义化版本 SemVer

1. 语义化版本 SemVer(Semantic Versioning)

语义化的版本号必须采用 XYZ 格式(MAJOR.MINOR.PATCH),其中 XYZ 是非负整数,并且不得包含前导零。X 是主要版本(主版本号),Y 是次要版本(次版本号),Z 是补丁版本(修订号)。每个元素必须在数值上增加。

如:1.2.3 主要版本 1,次要版本 2,补丁版本 3

a. 主要版本更新:表示一个破坏兼容性的大变化;
b. 次要版本更新:表示不会破坏任何内容的新功能;
c. 补丁版本更新:表示不会破坏任何内容的错误修复。

换句话说:错误修复不影响 API 增加补丁版本,向后兼容的 API 添加或更改增加次要版本,向后不兼容的 API 更改增加主要版本

Q: v1.2.3 是语义版本吗?
A:这不是语义版本。但是,在语义版本前添加 v 前缀是一种常用方式(英文),表示它是版本号。通过版本控制经常可以看到将 version 缩写为 v。示例: git tag v1.2.3 -m "Release version 1.2.3",在这种情况下,v1.2.3 是标记名称,语义版本是 1.2.3

2.

当您使用 npm 安装包(并保存它)时,会在 package.json 中添加一个包含包名称和应该使用的 semver 的条目。默认情况下,npm 安装最新版本,并预先插入版本号,例如 “^1.2.12”,这表示至少应该使用版本 1.2.12,但任何高于此版本的版本都可以,只要它具有相同的主要版本,由于次要版本和补丁编号仅代表错误修正和非破坏性添加, 你可以安全地使用任何更高版本的同一主要版本。阅读更多关于 semver 通配符的信息,请看 这里。

3.

(1)指定版本号:如 "classnames": "2.2.5",表示安装 2.2.5 的版本。

(2)~版本号:如 "babel-plugin-import": "~1.1.0",表示安装 1.1.x 的最新版本(不低于 1.1.0),但是不安装 1.2.x,也就是说安装时不改变大版本号和次要版本号。

(3)^版本号:如 "antd": "^3.1.4",表示安装 3.1.4 及以上的版本,但是不安装 4.0.0,也就是说安装时不改变大版本号。

参考:https://segmentfault.com/a/1190000017239545

你可能感兴趣的:(语义化版本 SemVer)