Skip to main content

yarn workspaces foreach

对所有运行命令工作区。

用法

$ yarn workspaces foreach <commandName> ...

示例

发布所有包 :

yarn workspaces foreach -A 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 标志将执行相反的操作,并将成为不得执行脚本的包列表。这两个标志都接受 glob 模式(如果有效标识并且受 micromatch 支持)。确保转义模式,以防止你自己的 shell 尝试扩展它们。-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

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