【发布时间】:2019-12-09 07:05:35
【问题描述】:
我已经阅读了有关 yarn 命令和 yarn.lock 的文档,我被引导相信 yarn.lock 文件的全部意义在于使用该文件中指定的版本。
我很好奇的是:yarn.lock中指定的版本是什么时候实际使用的?我在 package.json 中手动更改了一个包的版本,并重新运行yarn install,并更新了 yarn.lock 文件以使用新版本。我以为它会被锁定,所以package.json中指定了什么新版本无关紧要,只要yarn.lock为那个包指定了一个版本,它就会使用那个旧版本。
如果这就是 yarn.lock 的工作方式,那么为什么不在 package.json 中指定 EXACT 版本,而不是在版本号前使用 ~ 或 ^。现在我必须这样做,以免在运行yarn install 时更改 yarn.lock 文件。
那么锁定版本什么时候真正被使用/这是使用 yarn.lock 的正确方式吗?
【问题讨论】: