package.json版本前缀
前言
执行 npm i
下载依赖后,element-plus出现bug(单页面多个date-picker同时开启),这是 v2.9.0+ 的问题,但是项目 package.json
中版本如下:
"element-plus": "^2.7.6",
乍一看并不是版本问题,但是 package-lock.json
中版本却是 2.9.7
版本前缀
版本号主要分为三个部分:
如 2.7.6,其中 2 为主版本(major)、7 为次要版本(minor)、6 为补丁版本(patch)。
上述的问题在于版本前缀 ^
,执行 npm i
默认会自动拼接该前缀,它允许次要版本 (minor) 和补丁版本 (patch) 更新,但不会更新到新的主版本 (major)。
除此之外还有 ~
,它允许补丁版本 (patch) 更新,但不会更新到新的次要版本 (minor) 或主版本 (major)。
所以将 package.json 中的 ^
改为 ~
,或者删除版本前缀即可解决前言的问题。
^
vs ~
的区别
符号 | 允许的更新范围 | 示例 |
---|---|---|
^3.2.0 | 3.2.x 和 3.3.x ,但不包括 4.0.0 | 3.2.1 , 3.3.0 , 不包含 4.0.0 |
~3.2.0 | 只允许 3.2.x ,但不包括 3.3.0 | 3.2.1 , 3.2.5 , 不包含 3.3.0 |