我已经阅读了有关yarn命令和yarn.lock的文档,我认为yarn.lock文件的主要用途是使用其中指定的版本。
我想知道的是:什么时候会实际使用yarn.lock文件中指定的版本?我手动更改了package.json文件中某个软件包的版本,并重新运行了yarn install
命令,然后yarn.lock文件被更新以使用新版本。我原本认为它会被锁定,所以无论在package.json文件中指定什么新版本,只要yarn.lock文件指定了该软件包的版本,就会使用那个旧版本。
如果这就是yarn.lock的正确使用方式,那么为什么不直接在package.json中指定确切的版本,而是在版本号前面使用~或^呢?目前,我必须这样做,才能在运行yarn install
时不更改yarn.lock文件。
那么,在什么情况下会实际使用锁定版本/这是否是使用yarn.lock的正确方式?
package.json
文件,运行yarn install
命令也会修改yarn.lock
文件。我在从Node.js 13切换到14时看到了这种情况发生。 - zenw0lf