如何在 pnpm 工作区中运行监视脚本

Lyn*_*nch 5 node.js typescript pnpm pnpm-workspace

如果我有这样的结构

packages
  - alice
  - bar
  - foo
package.json
Run Code Online (Sandbox Code Playgroud)

alice、bar、foo 是三个子包。bar是alice的依赖。每个子包都有自己的监视脚本,在 package.json 中定义。现在,我添加一个像 之类的脚本pnpm -r run watch,它会卡住,因为监视脚本不会完成,并且 pnpm 会等待每个命令完成,然后再运行下一个命令。因此,我们可以添加parallel并行运行它们,例如pnpm -r --parallel run watch,但在第一次运行时仍然会出错,因为 bar 尚未完成,alice 无法正确解析 bar。参见github

那么是否有任何解决方法可以使这项工作发挥作用。

我找到Manage Monorepo with pnpm,他也遇到了同样的问题,我认为他没有找到一种优雅的方法来解决这个问题。

我发现vitest使用pnpm -r --parallel --filter=./packages/** run dev,并且它有效,我不知道为什么 vitest 有效