如下是package.json文件内容
{
"name": "vite-demo",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"element-plus": "^2.0.2",
"sass": "^1.49.8",
"vue": "^3.2.25",
"vue-router": "4"
},
"devDependencies": {
"@rollup/plugin-alias": "^3.1.9",
"@types/lodash": "^4.14.178",
"@vitejs/plugin-vue": "^2.2.0",
"lodash": "^4.17.21",
"typescript": "^4.5.5",
"vite": "^2.8.0",
"vue-tsc": "^0.31.4"
}
}
可以看到dependencies或devDependencies里面的依赖都有“^”开头,那是什么意思呢?

版本格式:【主版本号.次版本号.修订号】
<、>、>=、<=、=范围符号:
<少于<=小于或等于>比...更棒>=大于或等于=平等的。(可省略不写)
~波浪号范围:
允许补丁级别的更改。如果没有,则允许进行次要级别的更改。
~1.2.3: >=1.2.3 < 1.3.0~1.2: >=1.2.0 < 1.3.0(与 相同1.2.x)~1: >=1.0.0 < 2.0.0(与 相同1.x)~0.2.3: >=0.2.3 < 0.3.0~0.2: >=0.2.0 < 0.3.0(与 相同0.2.x)~0: >=0.0.0 < 1.0.0(与 相同0.x)
^ 插入符号范围:
允许不修改元组中最左边的非零数字 [major, minor, patch]。允许版本1.0.0及更高版本的补丁和次要更新,版本的补丁更新0.X >=0.1.0,以及版本的不更新0.0.X。
^1.2.3: >=1.2.3 < 2.0.0^0.2.3: >=0.2.3 < 0.3.0^0.0.3: >=0.0.3 < 0.0.4^1.2.3-beta.2: >=1.2.3-beta.2 < 2.0.0 ,请注意1.2.3,如果版本中的预发布版本大于或等于beta.2. 所以,1.2.3-beta.4会被允许,但1.2.4-beta.2不会。^0.0.3-beta: >=0.0.3-beta < 0.0.4^1.2.x: >=1.2.0 < 2.0.0^0.0.x: >=0.0.0 < 0.1.0^0.0: >=0.0.0 < 0.1.0^1.x: >=1.0.0 < 2.0.0^0.x: >=0.0.0 < 1.0.0
- 连字符范围(X.Y.Z - A.B.C):
1.2.3 - 2.3.4: >=1.2.3 <= 2.3.41.2 - 2.3.4: >=1.2.0 <= 2.3.41.2.3 - 2.3: >=1.2.3 < 2.4.01.2.3 - 2: >=1.2.3 < 3.0.0
“x”、“*”、空字符 " " 范围:
*:>= 0.0.0(任何版本都可以)1.x:>= 1.0.0 < 2.0.0(匹配主要版本)1.2.x:>= 1.2.0 < 1.3.0(匹配主要和次要版本)""(空字符串) :>= 0.0.0(等同于*,任何版本都可以)1:>= 1.0.0 < 2.0.01.2:>= 1.2.0 < 1.3.0
简洁版如下
version必须完全匹配>version必须大于version>=version等等<version<=version~version“大约相当于版本”^version“与版本兼容”1.2.x 指1.2.0、1.2.1 等,但不是 1.3.0*匹配任何版本""(只是一个空字符串)与*version1 - version2与 相同>=version1 <=version2。range1 || range2如果满足 range1 或 range2 则通过。
本文介绍了package.json文件中dependencies和devDependencies中依赖版本号的符号,如"^"、"~"和"-"等,解释了它们分别代表的语义化版本规则,包括允许的主版本、次版本和补丁级别的更新。详细阐述了不同符号对版本范围的限制,并提供了版本号兼容性的简单总结。
2054

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



