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

package.json版本前缀_第1张图片

版本前缀

版本号主要分为三个部分:
如 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.x3.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

你可能感兴趣的:(前端)