重要信息: 此文档涵盖纱线 1(经典)。
有关纱线 2+ 文档和迁移指南,请参阅 yarnpkg.com。

纱线版本

更新包版本。

更新版本

使用 yarn version 命令可以通过命令行更新包版本。

例如,从这个 package.json 开始 package.json

{
  "name": "example-yarn-package",
  "version": "1.0.1",
  "description": "An example package to demonstrate Yarn"
}

我们运行 yarn version 命令时

yarn version
info Current version: 1.0.1
question New version: 1.0.2
info New version: 1.0.2
✨  Done in 9.42s.

我们将获取此更新后的 package.json

{
  "name": "example-yarn-package",
  "version": "1.0.2",
  "description": "An example package to demonstrate Yarn"
}

注意:您输入的新版本必须是有效的 SemVer 版本。

Git 标记

如果您在 Git 存储库内运行 yarn version,则默认情况下会按照 v0.0.0 格式创建一个 注释的 Git 标记

您可以自定义创建的 git 标记或通过使用 yarn config set 禁用此行为。

若要更改 git 标记的前缀,您可以使用 version-tag-prefix

yarn config set version-tag-prefix "v"

或者,您可以使用 version-git-message(其中 %s 是版本字符串)更改 git 消息

yarn config set version-git-message "v%s"

您还可以使用 version-sign-git-tag 打开或关闭 git 标记签名

yarn config set version-sign-git-tag false

您甚至可以使用 version-git-tag 完全启用或禁用 git 标记行为

yarn config set version-git-tag true

如果您想停止运行 git 提交钩子,可以使用 version-commit-hooks 禁用它们

yarn config set version-commit-hooks false

版本生命周期方法

运行 yarn version 命令时,它还将按以下顺序运行通常的生命周期方法

  • 纱线预版本
  • 纱线版本
  • 纱线后版本

在这些脚本中,您还获得了一些便捷的环境变量,例如 npm_package_version 将在 preversion 脚本中保存版本更改前的版本,在 postversion 脚本中保存版本更改后的版本。

这在将 yarn 与 git 一起用于发布新标记时非常有用。以下是 package.json 文件的外观示例

{
  "name": "example-yarn-package",
  "version": "1.0.2",
  "description": "An example package to demonstrate Yarn",
  "scripts": {
    "test": "echo \"Running tests for version $npm_package_version...\"",
    "preversion": "yarn test",
    "postversion":
      "git push --tags && yarn publish . --tag $npm_package_version && git push && echo \"Successfully released version $npm_package_version!\""
  }
}

运行 yarn version 大致如下所示

info Current version: 1.0.2
Running tests for version 1.0.2...
✨  Done in 0.10s.
info New version: 2.0.0
...
To github.com:example-org/example-yarn-package.git
 * [new tag]             v2.0.0 -> v2.0.0
...
Successfully released version 2.0.0!
✨  Done in 2.72s.

在此之后,远程存储库应反映更新后的版本,并且应在同一版本下发布包。

命令

纱线版本

使用交互式会话创建一个新版本以提示您输入新版本。

Yarn 版本 --new-version <版本>

创建由 <版本> 指定的新版本。

Yarn 版本 --major
Yarn 版本 --minor
Yarn 版本 --patch

创建新版本,方法是增加当前版本的主要版本号、次要版本号或修补版本号。

Yarn 版本 --premajor
Yarn 版本 --preminor
Yarn 版本--prepatch

创建新预发布版本,方法是增加当前版本的主要版本号、次要版本号或修补版本号并添加预发布版本号。

Yarn 版本 --prerelease

增加预发布版本号,保持主版本。

Yarn 版本 [--premajor | --preminor | --prepatch | --prerelease] --preid <pre-identitfier>

添加由 <pre-identitfier> 指定的标识符,用作 premajor、preminor、prepatch 或 prerelease 版本增量的前缀。

Yarn 版本 --no-git-tag-version

创建新版本,但不创建 Git 标签。

Yarn 版本 --no-commit-hooks

提交新版本时,绕过运行提交挂钩。