Skip to main content

yarn workspaces foreach

对所有运行命令工作区。

用法

$ yarn workspaces foreach <commandName> ...

示例

发布所有包 :

yarn workspaces foreach -A --no-private npm publish --tolerate-republish

在所有后代包上运行构建脚本 :

yarn workspaces foreach -A run build

在当前和所有后代包上并行运行构建脚本,首先构建包依赖 :

yarn workspaces foreach -Apt run build

在多个包及其所有依赖上运行构建脚本,构建依赖 first :

yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build

详情

此命令将在当前工作区及其所有子工作区上运行指定的子命令。各种标志可以改变命令的具体行为:- 如果设置了 -p,--parallel,则命令将并行运行;默认情况下,它们的并行任务数限制为大约等于核心数一半,但可以通过 -j,--jobs 覆盖该限制,或通过设置 -j unlimited 禁用该限制。- 如果同时设置了 -p,--parallel-i,--interlaced,Yarn 将在收到输出时打印输出行。如果未设置 -i,--interlaced,它将缓冲每个进程的输出,并且仅在其源进程退出后才打印结果缓冲区。 - 如果设置了 -t,--topological,Yarn 将仅在通过 dependencies 字段依赖的所有工作区都成功完成执行后才运行该命令。 如果设置了 --topological-dev,则在确定等待点时将同时考虑 dependenciesdevDependencies 字段。 - 如果设置了 -A,--all,Yarn 将在项目的所有工作区上运行该命令。 - 如果设置了 -R,--recursive,Yarn 将通过递归评估 dependenciesdevDependencies 字段来查找要在其上运行命令的工作区,而不是查看 workspaces 字段。 - 如果设置了 -W,--worktree,Yarn 将通过查看当前工作树来查找要在其上运行命令的工作区。 - 如果设置了 --from,Yarn 将使用与 'from' glob 匹配的包作为任何递归搜索的起点。 - 如果设置了 --since,Yarn 将仅在自指定引用以来已修改的工作区上运行该命令。默认情况下,Yarn 将使用 changesetBaseRefs 配置选项指定的引用。- 如果设置了 --dry-run,Yarn 将解释其操作,但不会实际执行任何操作。- 通过使用 --include(充当白名单),该命令可能仅适用于某些工作区。--exclude 标志的作用相反,它将列出不得执行该脚本的软件包。这两个标志都接受全局模式(如果有效的 Idents 且受 micromatch 支持)。请确保对这些模式进行转义,以防止你自己的 shell 尝试扩展它们。你还可以使用 --no-private 标志来避免在私有工作区中运行该命令。-v,--verbose 标志最多可以传递两次:一次是在输出行前添加原始工作区的名称,另一次是在输出行中包含开始/结束/计时日志行。在终端环境中,默认启用最大详细程度。如果命令是 run 并且正在运行的脚本不存在,则子工作区将被跳过而不会出现错误。

选项

定义描述

--from #0

任何递归的基础都是通配符模式标识或路径的数组

-A,--all

在项目的所有工作区上运行该命令

-R,--recursive

在当前工作区及其所有递归依赖上运行该命令

-W,--worktree

在当前工作树的所有工作区上运行该命令

-v,--verbose

将日志详细程度提高 2 倍

-p,--parallel

并行运行命令

-i,--interlaced

实时打印命令的输出,而不是缓冲它

-j,--jobs #0

执行将限制为的最大并行任务数;或 unlimited

-t,--topological

在它所依赖的所有工作区(常规)完成后运行该命令

--topological-dev

在它所依赖的所有工作区(常规 + 开发)完成后运行该命令

--include #0

通配符模式标识或路径的数组;仅匹配的工作区将被遍历

--exclude #0

通配符模式标识或路径的数组;匹配的工作区不会被遍历

--no-private

避免在私有工作区上运行命令

--since

仅包括自指定引用以来已更改的工作区。

-n,--dry-run

打印将要运行的命令,但不实际运行它们