我在一个pnpm工作区中工作,其中包含一些共享库、一些前端应用程序和一些后台应用程序。按示意图:
├── apps-front
│ ├── f1
│ └── f2
├── apps-back
│ ├── b1
│ └── b2
├── packages
│ ├── shared-common
│ └── shared-front
└── package.json我想在包的子集上运行pnpm脚本。例如,当我在前端应用程序工作时,我想为共享和两个前端应用程序启用“监视”,而不是后台。通常,共享的react组件是在实际条件下构建的,代码更改可以在任何一方发生。
所有这些包都包含一个"dev“脚本,用于监视更改和编译。这些脚本本质上是阻塞的,必须并行运行。
根据pnpm文档,run命令将接受工作区和过滤器参数。
以下是我尝试过的:
pnpm run serve -r --parallel --filter {apps-front} --filter {packages}但是这个错误失败了:pnpm.CMD: The command parameter was already specified.
如何修复命令?
PS:如果有关系,pnpm是6.23.6,节点是14.8,我在W10 21H2 X64上
发布于 2021-12-10 15:30:35
实际上是因为powershell终端。用"封装过滤器解决了这个问题:
pnpm run serve --stream --parallel --filter "{apps-front}" --filter "{packages}"我想括号不是按字面解释的。
我还删除了-r (递归选项)并添加了--stream。
这在工作区package.json中也能很好地作为脚本运行:
{
"scripts": {
"devfront" : "pnpm run serve --stream --parallel --filter \"{apps-front}\" --filter \"{packages}\""
}
}https://stackoverflow.com/questions/70306554
复制相似问题