我正在与 NX 一起在 Angular 环境中工作。我的
package.json
中有以下脚本来构建项目:
"start:all": "nx run-many --target=build --projects=\"proj1,proj2,proj3,proj4\" --watch --skip-nx-cache"
运行此命令后,它将运行
proj2:build --watch
,然后开始观看该项目。在这种情况下,它不会开始构建其他 3 个项目。
我知道NX有他们的手表功能。我不确定是否有更好的方法可以以这种方式完成此任务,但它似乎慢得多/似乎没有缓存结果。
我尝试添加
--parallel
和--maxParallel=100
,但没有解决。
我尝试删除
--watch
标志。这允许构建所有项目,但我需要监视功能。
这是最奇怪的部分。我尝试删除它被卡住的项目,它说
Running target build for 3 projects and 1 task they depend on:
然后仍然构建了我已删除的项目(其他依赖项依赖于它),正确构建了另外 2 个项目,但留下了另一个项目未构建。
我假设有一些问题需要修复它们如何以某种方式相互依赖,或者我需要修复它们如何彼此并行运行。
任何信息都有帮助,谢谢!
在每个
project.json
的 "build"
部分下,添加以下内容:
"dependsOn": [
{ "dependencies": false, "target": "build"}
],
在
nx.json
中 "taskRunnerOptions"
-> "default"
-> "options"
,添加:
"parallel": 100
这需要在文档中进行一些搜索,但解决方案最终需要两件事:
问题是 proj1 和 proj2 依赖于 proj3 和 proj4,并且默认情况下等待其
build
函数完成。但是,由于他们的构建调用具有 --watch
标志,因此无法完成构建调用,并且 dependsOn
从未实现。
在
"dependencies": false
中设置 "dependsOn"
允许调用构建而无需等待依赖项构建