ng build --prod 非常慢

use*_*ser 8 angular-cli angular

我们有一个 Angular 项目,我们正在尝试使用--prod选项构建它。

问题是,花了33个小时!

老实说,我们不太擅长 Angular、npm 等等,我们都是这个世界的初学者。

我们所知道的是,当我们执行 时ng build --prod command,我们会卡在这里几个小时:

11% building modules 9/11 modules 2 active …s\font-awesome\css\font-awesome.min.css
Run Code Online (Sandbox Code Playgroud)

我们尝试从angular.json文件中删除 font-awesome.min.css,但是我们卡在另一个 CSS 文件中,而且它永远不会结束。即使我们从angular.json文件中删除了所有 CSS文件,我们仍然卡在这里:

10% building modules 2/2 modules 0 active
Run Code Online (Sandbox Code Playgroud)

以下是我们的版本:

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.7.5
@angular-devkit/build-angular      0.7.5
@angular-devkit/build-ng-packagr   0.7.5
@angular-devkit/build-optimizer    0.7.5
@angular-devkit/build-webpack      0.7.5
@angular-devkit/core               0.7.5
@angular-devkit/schematics         0.8.9
@angular/cdk                       6.4.7
@angular/cli                       6.2.9
@angular/material                  6.4.7
@ngtools/json-schema               1.1.0
@ngtools/webpack                   6.1.5
@schematics/angular                0.8.9
@schematics/update                 0.8.9
ng-packagr                         4.7.1
rxjs                               6.4.0
typescript                         2.9.2
webpack                            4.9.2
Run Code Online (Sandbox Code Playgroud)

我们想要的只是找到一种方法来调试这个问题,或者也许有人已经遇到过同样的问题?

这是我计算的规格:

Processor: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz 3.19 GHz
RAM: 32Gb
Windows 7
Run Code Online (Sandbox Code Playgroud)

Min*_*510 6

增加节点的分配内存大小确实为我加快了速度。你可以在这里看到我给了它整个 8GB,而不是默认的 512MB。

> node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod
Run Code Online (Sandbox Code Playgroud)

如果您不确定您的机器有多少可用内存,请使用以下命令查看基于 MB 的内存统计信息,请检查available列下而不是free列。

> free -m
              total        used        free      shared  buff/cache   available
Mem:          15866        1490        3726         116       10650       13929
Run Code Online (Sandbox Code Playgroud)


use*_*ser -22

供你参考:

ng build --prod --no-aot --build-optimizer false
Run Code Online (Sandbox Code Playgroud)

不到一分钟就完成了。

  • 您正在删除产品版本的重要设置。当然会更快。 (13认同)
  • 构建产品的目的是拥有这些重要的设置。 (3认同)
  • 删除功能与解决问题不同。 (2认同)
  • 如果这是您的解决方案,则不构建是另一种选择 (2认同)