yarn workspaces foreach
对所有运行命令工作区。
用法
$ yarn workspaces foreach <commandName> ...
示例
发布所有包 :
在所有后代包上运行构建脚本 :
在当前和所有后代包上并行运行构建脚本,首先构建包依赖 :
在多个包及其所有依赖上运行构建脚本,构建依赖 first :
详情
此命令将在当前工作区及其所有子工作区上运行指定的子命令。各种标志可以改变命令的具体行为:- 如果设置了
-p,--parallel
,则命令将并行运行;默认情况下,它们的并行任务数限制为大约等于核心数一半,但可以通过 -j,--jobs
覆盖该限制,或通过设置 -j unlimited
禁用该限制。- 如果同时设置了 -p,--parallel
和
-i,--interlaced
,Yarn 将在收到输出时打印输出行。如果未设置
-i,--interlaced
,它将缓冲每个进程的输出,并且仅在其源进程退出后才打印结果缓冲区。 - 如果设置了
-t,--topological
,Yarn 将仅在通过 dependencies
字段依赖的所有工作区都成功完成执行后才运行该命令。 如果设置了
--topological-dev
,则在确定等待点时将同时考虑 dependencies
和 devDependencies
字段。 - 如果设置了
-A,--all
,Yarn 将在项目的所有工作区上运行该命令。 - 如果设置了 -R,--recursive
,Yarn 将通过递归评估
dependencies
和 devDependencies
字段来查找要在其上运行命令的工作区,而不是查看 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
并且正在运行的脚本不存在,则子工作区将被跳过而不会出现错误。
选项
定义 | 描述 |
---|---|
| 任何递归的基础都是通配符模式标识或路径的数组 |
| 在项目的所有工作区上运行该命令 |
| 在当前工作区及其所有递归依赖上运行该命令 |
| 在当前工作树的所有工作区上运行该命令 |
| 将日志详细程度提高 2 倍 |
| 并行运行命令 |
| 实时打印命令的输出,而不是缓冲它 |
| 执行将限制为的最大并行任务数;或 unlimited |
| 在它所依赖的所有工作区(常规)完成后运行该命令 |
| 在它所依赖的所有工作区(常规 + 开发)完成后运行该命令 |
| 通配符模式标识或路径的数组;仅匹配的工作区将被遍历 |
| 通配符模式标识或路径的数组;匹配的工作区不会被遍历 |
| 避免在私有工作区上运行命令 |
| 仅包括自指定引用以来已更改的工作区。 |
| 打印将要运行的命令,但不实际运行它们 |