📜  package.json 中波浪号 ( ~ ) 和插入符号 ( ^ ) 之间的区别

📅  最后修改于: 2021-09-12 11:02:13             🧑  作者: Mango

当我们打开 package.json 文件并搜索依赖属性时,我们会在其中找到列为依赖属性package-name:package-version的嵌套对象的包。现在查看包版本,我们发现一些数字由三个点分隔(例如2.6.2 )。

NPM 版本使用三个点分隔的数字编写,左起第一个数字表示主要版本,左起第二个数字表示次要版本,第三个数字表示软件包的补丁版本。

语法: npm 版本的语法如下所示。

Major.Minor.Patch

波浪号 (~) 表示法:用于匹配最新的补丁版本。插入符号 ~ 符号冻结主要版本和次要版本。正如我们所知,补丁更新是错误修复,这就是为什么我们可以说 ~ 符号允许我们自动接受错误修复。

示例: ~1.2.0 将更新所有未来的补丁更新。我们只需要编写 ~1.2.0 和所有下一个补丁更新依赖项。例如,1.2。 1,1.2。 2,1.2。 5 ……………1.2.x.

注意:补丁更新是包中非常小的安全更改,这就是~version大致等同于版本的原因。

插入符号 (^) 表示法:用于在补丁更新的同时自动更新次要更新。

示例: ^1.2.4 将更新所有未来的Minor补丁更新,例如,如果发生任何更新,^1.2.4 会自动将依赖项更改为1.xx。

使用插入符号,定期查看我们的代码是否与最新版本兼容很重要。

package.json 中波浪号 (~) 和插入符号 (^) 的区别:

Tilde(~) notation

Caret(^) notation

Used for Approximately equivalent to version. Used for Compatible with version.
It will update you to all future patch versions, without incrementing the minor version. ~1.2.3 will use releases from 1.2.3 to <1.3. It will update you to all future minor/patch versions, without incrementing the major version. ^2.3.4 will use releases from 2.3.4 to <3.0.0
It gives you bug fix releases. It gives you backwards-compatible new functionality as well.
It will update in decimals. It will update to its latest version in numbers.
Not a default notation used by NPM. Used by NPM as default notation.
Example: ~1.0.2 Example: ^1.0.2

参考资料: https://docs.npmjs.com/about-semantic-versioning