如下是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.4
1.2 - 2.3.4
: >=1.2.0 <= 2.3.4
1.2.3 - 2.3
: >=1.2.3 < 2.4.0
1.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.0
1.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 则通过。