我有三个包裹:
A,依赖于CB,依赖于CC当使用lerna run build时,C在A和B之前构建(很好!)
但是,当我开始一个手表任务lerna run watch,C从来没有完成,因此A和B没有被监视。
使用lerna run watch --parallel同时启动A、B和C,但是A和B都会抛出错误,因为它们无法从C找到dist文件夹( C在重建之前刚刚删除了该文件夹)。
是否有任何方法来启动监视任务,但仍然保持依赖关系的顺序,就像正常运行一样?或者至少推迟一些其他人?
发布于 2021-02-02 18:15:00
更新:基于评论的,我想我现在明白了发生了什么。如果您有构建依赖项,那么它们应该位于同一个线程中,而不是并发线程中,也就是说,它们应该依次构建。
不过,你还是可以试试..。在构建中使用
--noClean选项,它不会删除dist文件夹!然后您的并行构建将运行。
三次设置:我将配置/双重检查(您没有列出您的package.json),以便lerna知道该遵循什么顺序
peerDependencies获取列表devDependenciespackage.json中,https://github.com/lerna/lerna,它通常是存储库根。唯一的限制是不能直接嵌套包位置,但这也是“正常”npm包共享的限制。所以..。包/*下的叶包被认为是“最佳实践”。

最后,拓扑顺序将由lerna run在构建中用户,您可以强制它在需要时包含依赖项--include-dependencies /或--include-dependents标志,比如所以。
解决方案2:现在你可以做些什么.
lerna run build --concurrency 1发布于 2021-02-05 03:02:28
据我理解,a和b中的监视作业没有监视节点模块,特别是注入的c依赖项,以及这种行为的结果。
也许,如果您将这些目录添加到您的手表作业,您可以找到一个有效的解决办法。
https://stackoverflow.com/questions/65909198
复制相似问题