如何在pnpm monorepo根目录运行子工作区独有的脚本?
在pnpm Monorepo根目录运行子工作区独有脚本
用pnpm直接执行
正确的命令是把--filter参数放在run前面,指定目标子工作区:
pnpm --filter mobile run dev:ios # 也可以省略run,简化成: pnpm --filter mobile dev:ios
你之前的命令错在把--filter放在了脚本名称后面,pnpm会把它当成dev:ios脚本的参数,而不是用来筛选工作区的全局选项,自然会报错。
用Turbo执行
Turbo的正确写法需要明确指定要筛选的工作区,推荐用等号连接参数避免歧义:
turbo run dev:ios --filter=mobile
如果还是报错,检查下turbo.json的配置:确保pipeline里包含了dev:ios脚本的定义,或者配置了允许执行任意脚本的规则(比如设置"globalDependencies": []),不然Turbo可能会拒绝执行未声明的脚本。
额外检查项
- 确认mobile子工作区的
package.json里确实存在dev:ios脚本 - 根目录的
pnpm-workspace.yaml要正确配置mobile工作区的路径,保证pnpm能识别到这个子工作区
内容的提问来源于stack exchange,提问作者suchcodemuchwow
相关产品推荐
相关产品推荐

