yarn add
向项目添加依赖项。
用法
$ yarn add ...
示例
向当前工作区添加常规包
向当前工作区添加特定版本的包
使用 URL 将 GitHub 存储库(主分支)中的包添加到当前工作区
使用 GitHub 协议将 GitHub 存储库(主分支)中的包添加到当前工作区
使用 GitHub 协议(简写)将 GitHub 存储库(主分支)中的包添加到当前工作区
使用 GitHub 协议(简写)将 GitHub 存储库的特定分支中的包添加到当前工作区
详细信息
此命令将包添加到最近工作区的 package.json。
-
如果之前不存在,则包默认添加到常规
依赖项
字段,但此行为可以覆盖,这要归功于-D,--dev
标志(它将导致依赖项被添加到devDependencies
字段中)和-P,--peer
标志(它将对peerDependencies
执行相同操作)。 -
如果包已列在您的依赖项中,则默认情况下,无论它是
依赖项
还是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 范围(默认情况下使用^
修饰符,除非通过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://yarn.npmjs.net.cn/protocols。
选项
定义 | 说明 |
---|---|
| 将输出格式化为 NDJSON 流 |
| 按原样存储依赖项标签,而不是解析它们 |
| 不要对已解析的范围使用任何 semver 修饰符 |
| 对已解析的范围使用~ semver 修饰符 |
| 对已解析的范围使用^ semver 修饰符 |
| 将包添加为开发依赖项 |
| 将包添加为对等依赖项 |
| 将包添加/升级为可选常规/对等依赖项 |
| 将包添加/升级为开发依赖项 |
| 在项目中从其他工作区重用指定的包 |
| 重用项目中某个位置已使用的最高版本 |
| 更改安装生成的内容 |