重要提示:此文档涵盖了 Yarn 1(经典版)。
有关 Yarn 2+ 文档和迁移指南,请访问 yarnpkg.com。

yarn upgrade

根据指定范围将软件包升级至最新版本。

yarn upgrade [package | package@tag | package@version | --scope @scope]... [--ignore-engines] [--pattern]

此命令根据 package.json 文件中指定的版本范围将依赖项更新到相应最新版本。同时,还将重新创建 yarn.lock 文件。

此外,还可以指定一个或多个软件包名称。如果指定了软件包名称,则仅升级这些软件包。如果未指定软件包名称,则升级所有依赖项。

[package]:当指定软件包仅是一个名称时,则将把此软件包的匹配最新版本升级到该版本。

[package@tag]:当指定软件包包含标记时,则升级指定的标记。标记名称由项目维护者选择,通常使用此命令安装活动开发软件包的实验版本或长期支持版本。所选标记将成为显示在 package.json 文件中的版本。

[package@version]:当指定软件包包含版本时,升级指定的版本。在 package.json 中,依赖项引用也将更改为与指定版本匹配。可以使用任何 语义版本控制 版本号或范围。

--ignore-engines:此标志可用于跳过引擎检查。

示例

yarn upgrade
yarn upgrade left-pad
yarn upgrade left-pad@^1.0.0
yarn upgrade left-pad grunt
yarn upgrade @angular

yarn upgrade --pattern <pattern> 将升级与该模式匹配的所有软件包。

示例

yarn upgrade --pattern gulp
yarn upgrade left-pad --pattern "gulp|grunt"
yarn upgrade --latest --pattern "gulp-(match|newer)"
yarn upgrade [package]... --latest|-L [--caret | --tilde | --exact] [--pattern]

upgrade --latest 命令升级软件包的方式与 upgrade 命令相同,但忽略了 package.json 文件中指定的版本范围。而将使用 latest 标记指定的版本(可能会将软件包跨主要版本升级)。

package.json 文件将被更新以反映最新的版本范围。默认情况下,如果 package.json 中现有的范围说明符为 ^、~、<=、> 或精确版本之一,则会重新使用它。否则,它将被更改为插入符号 (^)。其中一个标志 --caret--tilde--exact 可用于明确指定范围。

示例

yarn upgrade --latest
yarn upgrade left-pad --latest
yarn upgrade left-pad grunt --latest --tilde
yarn upgrade (--scope|-S) @scope [--latest] [--pattern]

--scope @scope :指定范围时,只会升级以该范围开头的包。范围必须以“@”开头。

--latest :忽略 package.json 中指定的版本范围。取而代之的是,将使用 latest 标记指定的版本(可能会对多个主要版本进行包升级)。

示例

yarn upgrade --scope @angular
yarn upgrade -S @angular