跳至主要内容

yarn install

安装项目依赖项。

用法

$ yarn install

示例

安装项目

yarn install

在使用零安装时验证项目

yarn install --immutable --immutable-cache

在使用零安装时验证项目(如果您接受外部 PR,则稍微安全一些)

yarn install --immutable --immutable-cache --check-cache

详细信息

此命令在需要时设置您的项目。安装分为四个不同的步骤,每个步骤都有自己的特点

  • 解析:首先,包管理器将解析您的依赖项。除了常规的 semver 保证之外,一个依赖项版本优先于另一个依赖项版本的确切方式尚未标准化。如果某个包无法解析为您的预期,请检查所有依赖项是否已正确声明(还请查看我们的网站了解更多信息:)。

  • 获取:然后,我们在需要时下载所有依赖项,并确保它们都存储在我们的缓存中(检查 cacheFolderyarn config 中的值,以查看缓存文件存储的位置)。

  • 链接:然后,我们将依赖项树信息发送到负责以某种形式将它们写入磁盘的内部插件(例如,通过生成您可能知道的 .pnp.cjs 文件)。

  • 构建:依赖项树写入磁盘后,包管理器现在可以自由地按拓扑顺序运行所有可能需要的包的构建脚本,该拓扑顺序与它们相互依赖的方式兼容。有关详细信息,请参见 https://yarn.npmjs.net.cn/advanced/lifecycle-scripts

请注意,运行此命令不是推荐的工作流程的一部分。Yarn 支持零安装,这意味着只要您将缓存和 .pnp.cjs 文件存储在存储库中,那么在克隆存储库或切换分支后,所有内容都将正常工作,无需任何安装。

如果设置了 --immutable 选项(在 CI 上默认为 true),如果要修改锁定文件,Yarn 将中止并显示错误退出代码(可以使用 immutablePatterns 配置设置添加其他路径)。为了向后兼容,我们提供了 --frozen-lockfile 名称的别名,但它将在以后的版本中删除。

如果设置了 --immutable-cache 选项,如果要修改缓存文件夹(因为会添加文件或删除文件),Yarn 将中止并显示错误退出代码。

如果设置了 --refresh-lockfile 选项,Yarn 将为锁定文件中当前的包保留相同的解析,但会刷新其元数据。如果与 --immutable 一起使用,它可以验证锁定文件信息是否一致。当 Yarn 检测到它在拉取请求上下文中运行时,此标志默认启用。

如果设置了 --check-cache 选项,Yarn 将始终重新获取包,并确保其校验和与 1/ 锁定文件中描述的 2/ 现有缓存文件(如果存在)相匹配。如果你同时遵循零安装模型并接受来自第三方的 PR,建议将其作为 CI 工作流的一部分,因为他们可以在提交之前更改已签入的包。

如果设置了 --inline-builds 选项,Yarn 将详细打印依赖项的构建步骤的输出(而不是将它们写入单独的文件中)。这可能主要仅在使用类似 Docker 的环境时用于调试目的。

如果设置了 --mode=<mode> 选项,Yarn 将更改生成哪些工件。当前支持的模式是

  • skip-build 根本不会运行构建脚本。请注意,这与将 enableScripts 设置为 false 不同,因为后者会禁用构建脚本,从而影响磁盘上生成的文件内容,而前者只会禁用构建步骤,但不会禁用脚本本身,只是不会运行。

  • update-lockfile 会完全跳过链接步骤,只获取从锁定文件中丢失的包(或没有关联校验和的包)。此模式通常由 Renovate 或 Dependabot 等工具使用,以在不产生全部安装成本的情况下使锁定文件保持最新。

选项

定义说明

--json

将输出格式化为 NDJSON 流

--immutable

如果锁定文件要修改,则中止并显示错误退出代码

--immutable-cache

如果缓存文件夹要修改,则中止并显示错误退出代码

--refresh-lockfile

刷新存储在锁定文件中的包元数据

--check-cache

始终重新获取包并确保其校验和一致

--check-resolutions

验证包解析是否一致

--inline-builds

详细打印依赖项构建步骤的输出

--mode #0

更改安装生成的文件