重要:本文档介绍 Yarn 1(经典版)。
有关 Yarn 2+ 文档和迁移指南,请访问 yarnpkg.com。

yarn autoclean

清理并删除软件包依赖项中不必要的文件。

yarn autoclean [-I/--init] [-F/--force]

autoclean 命令通过删除依赖项中不必要的文件和文件夹来释放空间。它减少了项目 node_modules 文件夹中的文件数量,在直接将包签入版本控制的环境中非常有用。

注意:此命令仅用于高级用例。除非你遇到作为 node_modules 一部分安装的文件数量问题,否则不建议使用此命令。它将永久删除 node_modules 中的文件,这可能会导致包停止工作。

默认情况下,自动清理功能处于 禁用 状态。若要启用该功能,请手动创建 .yarnclean 文件,或运行 yarn autoclean --init 以使用默认条目创建文件。应将 .yarnclean 文件添加到版本控制。

.yarnclean 文件存在于某个包中时,将启用自动清理功能。将在以下情况下执行清理:

  • install 之后
  • add 之后
  • 如果运行了 yarn autoclean --force

此清理通过读取 .yarnclean 文件的每一行,并将每一行用作要删除的文件的 glob 模式来执行。

选项

-I/--init :如果 .yarnclean 文件不存在,则创建该文件并添加默认条目。然后应审核和编辑此文件以自定义要清理的文件。如果文件已存在,则不会覆盖该文件。

-F/--force :如果存在 .yarnclean 文件,则运行清理进程。如果文件不存在,则不执行任何操作。

默认值

当使用 yarn autoclean --init 命令创建 .yarnclean 文件时,将预先填充一组默认删除项。此默认列表旨在猜测不太需要的内容。无法预测所有现有和未来 NPM 包实际上不需要的所有目录和文件,因此此默认列表可能会导致包无法再工作。

强烈建议你手动检查 .yarnclean 中的默认条目并根据需要进行自定义。

如果你发现自动清理进程删除的是使软件包正常运行所需的文件时,那么你应从 .yarnclean 文件中移除相应的条目。

示例

你决定在 node_modules 中安装的所有依赖项中的所有 YAML 和 Markdown 文件可安全删除。你创建一个包含以下内容的 .yarnclean 文件

*.yaml
*.md

然后运行 yarn installyarn autoclean --force。清除进程将递归地删除 node_modules/ 中的所有 *.yaml*.md 文件(包括嵌套的传递性依赖项)。