Yarn add

Yarn add

该Yarn命令主要是用于向项目添加依赖项。

Yarn add 语法

$> yarn add [--json] [-E,--exact] [-T,--tilde] [-C,--caret] [-D,--dev] [-P,--peer] [-O,--optional] [--prefer-dev] [-i,--interactive] [--cached] ...

Yarn add 实例

将常规包添加到当前工作空间:

yarn add lodash

将软件包的特定版本添加到当前工作空间:

yarn add lodash@1.2.3

使用URL将包从GitHub存储库(主分支)添加到当前工作空间:

yarn add lodash@https://github.com/lodash/lodash

使用GitHub协议将包从GitHub存储库(主分支)添加到当前工作空间:

yarn add lodash@github:lodash/lodash

使用GitHub协议(简写)将包从GitHub存储库(主分支)添加到当前工作空间:

yarn add lodash@lodash/lodash

使用GitHub协议(简写)将包从GitHub存储库的特定分支添加到当前工作空间:

yarn add lodash-es@lodash/lodash#es

使用细节

此命令将一个软件包添加到package.json中,以获取最近的工作空间。

  • 如果以前不存在,则默认情况下会将包添加到常规 dependencies字段,但是由于该 -D,--dev标志(它将导致依赖项添加到该 devDependencies字段)和该-P,--peer标志(将进行相同的操作,但要针对peerDependencies)。

  • 如果包在你的依赖已经上市,默认情况下将升级它的部分是否您dependencies或devDependencies(它永远不会更新peerDependencies,虽然)。

  • 如果设置了该--prefer-dev标志,则该标志将更灵活-D,--dev地运行,因为它将devDependencies在dependencies或中未列出的软件包添加到您的软件包中devDependencies,但是dependencies如果您已经使用过该软件包,也将很高兴地升级您的软件包(但是-D,--dev 会抛出异常) )。

  • 如果设置,则-O,--optional标志会将包添加到 optionalDependencies字段中,并与-P,--peer标志一起将包添加为可选的对等依赖项。如果您的软件包中已经列出了该软件包dependencies,它将升级到 optionalDependencies。如果该软件包已经在您的peerDependencies中与-P,--peer标记一起列出 ,它将被升级为可选的对等依赖项:"peerDependenciesMeta": { "<package>": { "optional": true } }

  • 如果添加的包没有全部指定范围,latest则将解析其标签,并且返回的版本将用于生成新的semver范围(^默认情况下,使用修饰符,除非通过配置进行了其他 savePrefix配置;~如果-T,--tilde指定了修饰符,或完全不-E,--exact指定修饰符)。此规则有两个例外:第一个例外是,如果程序包是一个工作空间,则将使用其本地版本;第二个例外是,如果使用该程序包,则-P,--peer默认范围将是*,根本不会解析。

  • 如果添加的包指定了标签范围(例如latest或rc),则Yarn会将此标签解析为semver版本,并将其用于生成的package.json条目中(这意味着yarn add foo@latest效果与完全相同yarn add foo)。

如果使用了该--cached选项,则即使通过传递依赖关系,Yarn仍将优先重用项目中某处已使用的最高版本。

如果使用了该-i,--interactive选项(或preferInteractive启用了设置),则该命令将首先尝试检查项目中的其他工作区是否使用指定的程序包,如果使用了指定的程序包,则将提供它们的重用。

如果--json设置了该标志,则输出将遵循JSON流输出,也称为NDJSON(https://github.com/ndjson/ndjson-spec)。