pnpm 运行 基于位置的多个项目
pnpm run on multiples projects based on location
我在一个包含一些共享库、一些前端应用程序和一些后端应用程序的 pnpm 工作区内工作。示意图:
├── apps-front
│ ├── f1
│ └── f2
├── apps-back
│ ├── b1
│ └── b2
├── packages
│ ├── shared-common
│ └── shared-front
└── package.json
我想 运行 在包的子集上使用 pnpm 脚本。例如,当我在前端应用程序上工作时,我想为共享应用程序和两个前端应用程序启用“监视”,但不为后端应用程序启用。通常,共享的 React 组件是在真实条件下构建的,任何一方都可能发生代码更改。
所有这些包都包含一个“开发”脚本,用于监视更改和编译。这些脚本本质上是阻塞的,必须 运行 并行。
根据 pnpm documentation,运行 命令应该接受工作区和过滤器参数。
这是我的尝试:
pnpm run serve -r --parallel --filter {apps-front} --filter {packages}
但失败并出现此错误:pnpm.CMD: The command parameter was already specified.
如何修复命令?
PS:如果重要的话,pnpm 是 6.23.6,node 是 14.8,我在 W10 21H2 X64
其实是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}\""
}
}
我在一个包含一些共享库、一些前端应用程序和一些后端应用程序的 pnpm 工作区内工作。示意图:
├── apps-front
│ ├── f1
│ └── f2
├── apps-back
│ ├── b1
│ └── b2
├── packages
│ ├── shared-common
│ └── shared-front
└── package.json
我想 运行 在包的子集上使用 pnpm 脚本。例如,当我在前端应用程序上工作时,我想为共享应用程序和两个前端应用程序启用“监视”,但不为后端应用程序启用。通常,共享的 React 组件是在真实条件下构建的,任何一方都可能发生代码更改。
所有这些包都包含一个“开发”脚本,用于监视更改和编译。这些脚本本质上是阻塞的,必须 运行 并行。
根据 pnpm documentation,运行 命令应该接受工作区和过滤器参数。
这是我的尝试:
pnpm run serve -r --parallel --filter {apps-front} --filter {packages}
但失败并出现此错误:pnpm.CMD: The command parameter was already specified.
如何修复命令?
PS:如果重要的话,pnpm 是 6.23.6,node 是 14.8,我在 W10 21H2 X64
其实是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}\""
}
}