如何使用Turborepo为筛选后的工作区分别传递命令行参数?
能否用Turborepo给不同工作区传递不同命令行参数?
你期望的那种单条命令写法没法直接实现,Turborepo不支持在同一个turbo run命令里多次使用--filter和--来给不同工作区传递独立参数——它会把--后的参数当作所有匹配过滤条件的任务的通用参数,多次叠加的过滤和参数会被解析混乱。
不过有两种靠谱的替代方案:
方案1:拆分多条turbo命令执行
把针对foo和bar的任务拆成两个独立的turbo run命令,用&&(顺序执行)或者&(并行执行,取决于系统)串联:
turbo run dev --filter="foo" -- --env=dev && turbo run dev --filter="bar" -- --env=local
这种方式逻辑直白,每个命令单独控制对应工作区的参数,不会有解析冲突。
方案2:给工作区定义带参数的专属脚本
在对应工作区的package.json里,预先定义好带参数的脚本:
- 在foo工作区的package.json中:
"scripts": { "dev:dev": "dev --env=dev" } - 在bar工作区的package.json中:
"scripts": { "dev:local": "dev --env=local" }
然后用turbo执行这些自定义脚本:
turbo run dev:dev dev:local --filter="foo" --filter="bar"
或者更精准地分别指定:
turbo run dev:dev --filter="foo" && turbo run dev:local --filter="bar"
内容的提问来源于stack exchange,提问作者Victordanny
相关产品推荐
相关产品推荐

