我们在安装npm package 或查看package.json 的时候经常看到各种版本的指定方法,看起来容易混淆
如下所示:
"dependencies": {
"core-js": "^3.22.5",
"cowsay": "^1.5.0",
"lodash": "4.17.21",
"vue": "^3.2.34",
"webpack": "~5.72.1"
}
大家都知道npm 使用语义版本控制,他的概念很简单:所有的版本都有 3 个数字:x.y.z。
- 第一个数字是主版本。
- 第二个数字是次版本。
- 第三个数字是补丁版本。
版本指定方式比较多,特在此进行汇总记录:
可以使用的符号如下:
| ^ | 只会执行不更改最左边非零数字的更新。 如果写入的是 ^0.13.0,则当运行 npm update 时,可以更新到 0.13.1、0.13.2 等,但不能更新到 0.14.0 或更高版本。 如果写入的是 ^1.13.0,则当运行 npm update 时,可以更新到 1.13.1、1.14.0 等,但不能更新到 2.0.0 或更高版本。 |
| ~ | 如果写入的是 〜0.13.0,则当运行 npm update 时,会更新到补丁版本:即 0.13.1 可以,但 0.14.0 不可以。 |
| > | 接受高于指定版本的任何版本。 |
| >= | 接受等于或高于指定版本的任何版本。 |
| <= | 接受等于或低于指定版本的任何版本。 |
| < | 接受低于指定版本的任何版本。 |
| = | 接受确切的版本。【只能是版本号指定的当前版本】 |
| - | 接受一定范围的版本。例如:2.1.0 - 2.6.2。 |
| || | 组合集合。例如 < 2.1 || > 2.6。 |
| 无符号 | 仅接受指定的特定版本(例如 1.2.1)。 |
以上符号,可以合并其中的一些符号组合使用,例如 1.0.0 || >=1.1.0 <1.2.0,即使用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。
另外latest :使用可用的最新版本。
本文详细介绍了npm包管理中常见的版本指定符号,如^、~、>、<等,以及它们的含义和使用场景。通过例子解析了如何约束和更新依赖版本,帮助开发者更好地理解和掌握npm的语义版本控制策略。
23万+

被折叠的 条评论
为什么被折叠?



