我已经阅读了有关 yarn 命令和 yarn.lock 的文档,我被引导相信 yarn.lock 文件的全部意义在于使用该文件中指定的版本。
我很好奇的是:yarn.lock 中指定的版本是什么时候实际使用的?我在 package.json 中手动更改了一个包的版本,然后重新运行yarn install
,并更新了 yarn.lock 文件以使用新版本。我以为它会被锁定,所以在 package.json 中指定了什么新版本并不重要,只要 yarn.lock 为该包指定了一个版本,它就会使用那个旧版本。
如果这就是 yarn.lock 的工作方式,那么为什么不在 package.json 中指定 EXACT 版本,而不是在版本号前使用 ~ 或 ^。现在我必须这样做,以便在运行时不更改 yarn.lock 文件yarn install
。
那么锁定版本何时真正被使用/这是使用 yarn.lock 的正确方法吗?