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 | 
