在package.json中波浪号(~)和插入号(^)之间的区别
当我们打开package.json文件并搜索dependency属性时,我们会发现其中列出的包是dependency属性的嵌套对象。 包名:包版本 . 现在看一下包的版本,我们会发现一些由三个点分隔的数字(例如 2.6.2 )。
NPM版本是用三个点分隔的数字来表示的,从左边开始的第一个数字表示主要发布版本,从左边开始的第二个数字表示次要发布版本,第三个数字表示包的修补版本。
语法: npm版本的语法如下所示。
Major.Minor.Patch
**波浪(~
)符号 <小于符号/strong>: ** 它用于匹配最新的补丁版本。波浪(~
)符号冻结主版本和次版本。我们知道补丁更新是错误修复,所以可以说波浪(~
)符号允许我们自动接受错误修复。
示例: ~1.2.0会更新所有未来的补丁更新。我们只需写~1.2.0和所有下个补丁更新的依赖关系。例如,1.2. 1, 1.2. 2, 1.2. 5 ……………1.2.x。
注意: 补丁更新是软件包中非常小的安全更改,因此 ~版本 与版本大致相等。
**插入(^
)符号 <小于符号/strong>: ** 它用于自动更新次要更新以及补丁更新。
示例: ^1.2.4
会更新所有未来的 次要 和 补丁 更新,例如^1.2.4会自动更改依赖项为 1.x.x 如果发生任何更新。
使用插入符号时,重要的是要定期查看我们的代码是否与最新版本兼容。
在package.json中,波浪符号(~)和插入符号(^)的区别:
波浪线(~)标记法 | 脱字符(^)标记法 |
---|---|
用于代表大致相等的版本。 | 用于代表与某个版本兼容的版本。 |
它将使您更新到所有将来的补丁版本,不会提升次要版本号。~1.2.3 将使用从 1.2.3 到 <1.3 的发布。 | 它将使您更新到所有将来的次要/补丁版本,不会提升主要版本号。^2.3.4 将使用从 2.3.4 到 <3.0.0 的发布。 |
它提供bug修复版本。 | 它也提供向后兼容的新功能。 |
它将以小数形式进行更新。 | 它将以数字形式更新到最新版本。 |
不是NPM的默认标记法。 | NPM使用此作为默认标记法。 |
示例:~1.0.2 | 示例:^1.0.2 |
参考文献:
https://docs.npmjs.com/about-semantic-versioning