【问题标题】:Using nx run-many shows: Another process, with id ..., is currently running ngcc使用 nx run-many 显示:Another process, with id ..., is currently running ngcc
【发布时间】:2022-12-07 19:55:16
【问题描述】:

我们有一个包含 10 多个 Angular 应用程序和 150 多个库的 NX monorepo。我们的 CI 服务器正在使用 Ubuntu 在 docker 容器中运行所有构建。我们正在所有构建代理之间存储和共享计算缓存。我们现在使用 nx affected:apps 来检测构建需要运行哪些应用程序,并使用 nx affected:libs 为每个应用程序创建受影响的库列表。这种方法使我们能够运行分布式构建。我们现在为每个应用程序及其依赖库制定了专门的构建计划。

因此,我们正在使用受影响的 nx、计算缓存和分布式构建,但由于我们需要运行大量测试,我们仍在为构建持续时间过长而苦苦挣扎。

我们采取的下一步是使用 nx run-many 并行运行这些测试,但这对我们不起作用。即使有 2 个并行进程,我们也会看到以下错误:

另一个 ID 为 ... 的进程当前正在运行 ngcc。最多等待 250 秒才能完成。

我们已经尝试了所有解决方法,但均未成功 如果我在同一个 docker 容器中运行相同的命令但在我的本地机器上运行,一切正常。

因此,这种方法并没有减少构建时间,而是增加了总构建持续时间(如果我们想运行 4 个并行进程,我们需要在测试实际开始之前等待 16 分钟)。

任何想法为什么会这样?

【问题讨论】:

    标签: nrwl-nx nrwl


    【解决方案1】:

    NX 投掷 ngcc is already running 也有类似的问题

    对我有帮助的是将旗帜设置为平行。

    从:

    npx nx run-many --target=build --prod --all

    至:

    npx nx run-many --target=build --prod --all --parallel=1

    【讨论】:

      猜你喜欢
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 2021-11-10
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 2022-12-27
      相关资源
      最近更新 更多