我有三个包:
A
, 取决于 C
B
, 取决于 C
C
使用
lerna run build
时, C
在 A
之前构建和 B
(好的!)但是当我开始监视任务时
lerna run watch
, C
永远不会完成,因此A
和 B
不要被监视。使用
lerna run watch --parallel
开始 A
, B
和 C
同时但A
和 B
两者都抛出错误,因为它们无法从 C
中找到 dist 文件夹(C
在重建前刚刚删除)。有什么方法可以开始监视任务,但仍然保持正常运行的依赖顺序?或者至少延迟其他一些?
最佳答案
更新:根据评论,我想我现在明白发生了什么。如果您有构建依赖项,它们应该位于同一个线程而不是并发线程中,即它们应该按顺序构建。
However, you can still try it.. using the
--noClean
option in your build, it will not remove the dist folders! Then your parallel build will run.
三种设置 :我会配置/仔细检查(你没有列出你的
package.json
),所以 lerna
知道要遵循什么顺序peerDependencies
获取您的列表devDependencies
package.json
, ...The globs defined are relative to the directory that lerna.json lives in ,通常是存储库根目录。唯一的限制是您不能直接嵌套包位置,但这也是“普通”npm 包共享的限制。所以...... packages/* 下的叶子包被认为是“最佳实践”
最后,拓扑顺序将由
lerna run
使用。在构建中,您可以强制它包含依赖项--include-dependencies
/或 --include-dependents
根据需要标记,例如 soWorkaround option 2: for now to get past you can do...
lerna run build --concurrency 1
关于javascript - 带有监视任务的 Lerna - lerna run --parallel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65909198/