首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pnpm基于位置在多个项目上运行。

pnpm基于位置在多个项目上运行。
EN

Stack Overflow用户
提问于 2021-12-10 15:10:10
回答 1查看 3.8K关注 0票数 3

我在一个pnpm工作区中工作,其中包含一些共享库、一些前端应用程序和一些后台应用程序。按示意图:

代码语言:javascript
复制
├── apps-front
│   ├── f1
│   └── f2
├── apps-back
│   ├── b1
│   └── b2
├── packages
│   ├── shared-common
│   └── shared-front

└── package.json

我想在包的子集上运行pnpm脚本。例如,当我在前端应用程序工作时,我想为共享和两个前端应用程序启用“监视”,而不是后台。通常,共享的react组件是在实际条件下构建的,代码更改可以在任何一方发生。

所有这些包都包含一个"dev“脚本,用于监视更改和编译。这些脚本本质上是阻塞的,必须并行运行。

根据pnpm文档,run命令将接受工作区和过滤器参数。

以下是我尝试过的:

代码语言:javascript
复制
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上

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 15:30:35

实际上是因为powershell终端。用"封装过滤器解决了这个问题:

代码语言:javascript
复制
pnpm run serve --stream --parallel --filter "{apps-front}" --filter "{packages}"

我想括号不是按字面解释的。

我还删除了-r (递归选项)并添加了--stream

这在工作区package.json中也能很好地作为脚本运行:

代码语言:javascript
复制
{
    "scripts": {
        "devfront" : "pnpm run serve --stream​ --parallel --filter \"{apps-front}\" --filter \"{packages}\""
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70306554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档