ng build --configuration 生产在 Jenkins 上需要 30 多分钟,但在本地需要 5-6 分钟
Posted
技术标签:
【中文标题】ng build --configuration 生产在 Jenkins 上需要 30 多分钟,但在本地需要 5-6 分钟【英文标题】:ng build --configuration production takes 30+ mins on Jenkins but 5-6 mins on local 【发布时间】:2021-07-25 16:05:06 【问题描述】:我在 Jenkins 服务器上构建了一个 Angular 应用程序,该应用程序运行速度非常慢(需要 30 多分钟)。使用的命令:ng build --configuration production
但是,当我在本地 Windows 机器上运行相同的命令时,它会在大约 5 分钟内完成。
我试过设置NODE_OPTIONS=--max-old-space-size=8192
,但似乎没有任何影响。
我认为问题可能在于 ng build 没有利用所有服务器内核,但不确定。
Angular 版本:
Angular CLI: 9.1.15
Node: 10.22.1
OS: win32 x64
Angular: 9.1.13
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router
Ivy Workspace: Yes
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.901.15
@angular-devkit/build-angular 0.901.15
@angular-devkit/build-optimizer 0.901.15
@angular-devkit/build-webpack 0.901.15
@angular-devkit/core 9.1.15
@angular-devkit/schematics 9.1.15
@angular/cdk 9.2.4
@angular/cli 9.1.15
@ngtools/webpack 9.1.15
@schematics/angular 9.1.15
@schematics/update 0.901.15
rxjs 6.6.7
typescript 3.8.3
webpack 4.42.0
【问题讨论】:
可能是不同的硬件。您的本地环境是否有 SSD 驱动器,而不是安装 jenkins 的位置? 尝试删除本地机器中的 node_module 目录并构建它。将该时间与 Jenkins 构建时间进行比较。我之所以这么说,通常是在构建机器中从头开始构建,但在本地机器中,东西会被缓存,因此后续构建会更快。 是的,我的本地机器上有 SSD。 我删除了 node_modules,然后再次运行 prod 构建,它比 jenkins 构建快得多 【参考方案1】:添加更多内核不会减少构建时间。请记住,角度构建器(angular-devkit)是使用 Node.js 构建的,因此使用单线程。如果您想减少构建时间,请将 GPU 添加到您的服务器。可能您的本地机器有 GPU,这就是它需要更短时间的原因。
【讨论】:
GPU 如何帮助构建 Angular 项目? 我无法向该服务器添加 GPU ...节点中是否有配置以使用多个内核?已尝试增加内存,有时会有所改善,但大多数时候速度很慢以上是关于ng build --configuration 生产在 Jenkins 上需要 30 多分钟,但在本地需要 5-6 分钟的主要内容,如果未能解决你的问题,请参考以下文章
ionic build error: 运行子进程 ng 时发生错误
手动重启 `ng build --watch` 或 `ng serve`