纱线升级 - 是否保存了新版本?

Pis*_*hio 5 yarnpkg

假设我package.json在现有项目中有一个文件。在那里我有"some-package": "^1.0-01",,但是我知道最新版本是1.0-02

所以我做yarn upgrade。但是,package.json不是更新,仍然引用 -01版本。yarn.lock然而,该文件显示了这一点:

some-package@^1.0-01:
  version "1.0-02"
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?当其他人执行yarn命令时,他们将获得哪个版本。如果他们获得最新版本,显示-01在 中是不是会产生误导package.json?

nik*_*ohn 5

根据此处的文档,

纱线升级

此命令根据 package.json 文件中指定的版本范围将所有依赖项更新为其最新版本。yarn.lock 文件也将被重新创建。

棘手的部分是基于 package.json 中指定的版本范围

这意味着如果您package.json像您所说的那样定义了特定的 semver,upgrade则只会根据那里定义的范围升级它,即^1.0-01 应该1.0-02在您的package.json和yarn.lock文件中都升级到。

现在您已经说过这仅发生在您的yarn.lock文件中。Yarn 提供了一个用于检查此类冲突的实用程序,称为check

你可以试试跑步吗

yarn check
Run Code Online (Sandbox Code Playgroud)

在您的存储库中并告诉我们您的发现?

  • 不用担心,我现在明白了。文档说 ```yarn upgrade``` 遵守 package.json 中给出的版本控制范围,但 ```yarn upgrade package-name`` 将更新到 npm 存储库中的最新包,即使是跨主要版本。 (2认同)