package.json 中的 ^~

本文解释了package.json中^和~版本符号的作用,以及它们与yarn.lock的区别。package-lock.json更倾向于锁定特定版本,而yarn.lock则会自动更新至允许范围内的新版本。
摘要由CSDN通过智能技术生成

1. ^ 意思是要更新【次版本】,当市场有更新的版本时,例如:package.json 中是"^2.1.0",库可能会更新到2.2.0的最新版本,但不会更新到3.0.0版本。

2. ~ 意思是要更新【补丁版本】,当市场有更新的版本时,例如:package.json 中是"~2.1.0",库可能会更新到2.1.1的最新版本,但不会更新到2.2.0版本。

3. 版本号前面啥也没有,表示写死了版本号,无论何时何地安装的依赖版本只会是这个。

4.  yarn.lock 和 package-lock.json 下载新依赖上的区别

当 package-lock.json 存在时,即使市场上有比 package-lock.json 中锁定版本更新,且 package-lock.json 中存在 ^ ~ 允许更新, 安装的版本也只会是 package-lock.json 中锁定的版本,不会自动下载更新的版本。当然当 package.json 中版本被手动更新,会触发的 package-lock.json 连带变更。

而 yarn 的 yarn.lock,当市场有比 yarn.lock 中更新的版本,且 存在 ^ ~ 允许更新, 那么 yarn 会自动安装比 yarn.lock 更新的版本并且主动修改 yarn.lock。

总结:

  • ①package.json 具有锁定依赖版本的决定权,包管理工具不具有。

  • ②package.json ^ 意思是要更新【次版本】,~ 意思是要更新【补丁版本】。

  • ③yarn 的 yarn.lock 和 npm 的 package-lock.json 对“锁定依赖版本”表现不同,package-lock.json 的“锁定效果”更可靠。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值