yarn add
用法
$ yarn add ...
示例
将常规包添加到当前工作区 :
将包的特定版本添加到当前工作区 :
使用 URL 将 GitHub 存储库(主分支)中的包添加到当前工作区 :
使用 GitHub 协议将 GitHub 存储库(主分支)中的包添加到当前工作区 :
使用 GitHub 协议(简写)将 GitHub 存储库(主分支)中的包添加到当前工作区 :
使用 GitHub 协议(简写)将 GitHub 存储库特定分支中的包添加到当前工作区 :
将本地包(gzip tarball 格式)添加到当前工作区 :
详情
此命令将包添加到最近工作区的 package.json 中。 - 如果之前不存在,包将默认添加到常规 dependencies
字段,但是可以通过
-D,--dev
标志(将导致依赖添加到 devDependencies
字段)和 -P,--peer
标志(对
peerDependencies
执行相同操作)覆盖此行为。 - 如果包已经在依赖中列出,无论它是 dependencies
还是
devDependencies
的一部分,它都会默认升级(但它永远不会更新 peerDependencies
)。 - 如果设置了
--prefer-dev
标志,它将作为更灵活的 -D,--dev
运行,因为如果包尚未在 dependencies
或
devDependencies
中列出,它会将包添加到 devDependencies
,但如果已经在使用
dependencies
,它也会很乐意升级它(而 -D,--dev
会引发异常)。 - 如果设置,-O,--optional
标志会将包添加到
optionalDependencies
字段,并与 -P,--peer
标志结合使用,将包添加为可选对等依赖。如果包已列在你的
dependencies
中,它将升级为 optionalDependencies
。如果包已列在你的 peerDependencies
中,与
-P,--peer
标志结合使用,它将升级为可选对等依赖:"peerDependenciesMeta": { "<package>": { "optional": true } }
- 如果添加的包根本没有指定范围,则将解析其 XX24 标记,并使用返回的版本生成新的 semver
范围(默认情况下使用 ^
修饰符,除非通过 defaultSemverRangePrefix
配置另行配置,或者如果指定了
-T,--tilde
,则使用 ~
修饰符,如果指定了
-E,--exact
,则根本不使用修饰符)。此规则有两个例外:第一个例外是,如果包是工作区,则将使用其本地版本;第二个例外是,如果使用
-P,--peer
,则默认范围将为 *
,并且根本不会解析。- 如果添加的包指定了范围(例如 ^1.0.0
、latest
或 rc
),Yarn
将在生成的 package.json 条目中按原样添加此范围(特别是,诸如 rc
之类的标签将按原样编码,而不是转换为 semver 范围)。如果使用
--cached
选项,Yarn 将优先重用项目中某处已使用的最高版本,即使是通过传递依赖。如果使用 -i,--interactive
选项(或如果
preferInteractive
设置已打开),该命令将首先尝试检查项目中的其他工作区是否使用指定的包,如果是,将提供重用它们。如果设置了
--mode=<mode>
选项,Yarn 将更改生成的工件。目前支持的模式有: - skip-build
根本不会运行构建脚本。请注意,这与将
enableScripts
设置为 false 不同,因为后者将禁用构建脚本,从而影响磁盘上生成的工件的内容,而前者只会禁用构建步骤 -
但不会禁用脚本本身,因为脚本本身不会运行。 - update-lockfile
将完全跳过链接步骤,只获取锁文件中缺少的包(或没有相关校验和的包)。此模式通常由 Renovate 或 Dependabot
使锁文件保持最新状态,而无需承担完整的安装成本。有关所有受支持协议的汇编,请查阅我们网站上的专用页面:https://yarnpkg.com/protocols
。
选项
定义 | 描述 |
---|---|
| 将输出格式化为 NDJSON 流 |
| 按原样存储依赖标签,而不是解析它们 |
| 不要在解析范围内使用任何 semver 修饰符 |
| 在解析范围上使用 ~ semver 修饰符 |
| 在解析范围上使用 ^ semver 修饰符 |
| 将包添加为开发依赖 |
| 将包添加为对等依赖 |
| 将包添加/升级为可选的常规/对等依赖 |
| 将包添加/升级为开发依赖 |
| 重用项目中其他工作区中指定的包 |
| 重用项目中某处已使用的最高版本 |
| 更改安装生成的工件 |