Angular-cli: rc.8 to rc.9|rc.10 regression : stuck in "Generating ES5 bundles for differential loading..." if sourceMap is on

Created on 22 Jan 2020  路  4Comments  路  Source: angular/angular-cli

馃悶 Bug report

Command (mark with an x)


  • [ ] new
  • [x] build
  • [ ] serve
  • [ ] test
  • [ ] e2e
  • [ ] generate
  • [ ] add
  • [ ] update
  • [ ] lint
  • [ ] xi18n
  • [ ] run
  • [ ] config
  • [ ] help
  • [ ] version
  • [ ] doc

Is this a regression?

Yes

with sourceMap: true or sourceMap: { "scripts": true, "styles": true, "vendor": true }

works with
"@angular-devkit/build-angular": "0.900.0-rc.8",
"@angular/cli": "9.0.0-rc.8",

and even with
"@angular-devkit/build-angular": "0.900.0-rc.8",
"@angular/cli": "9.0.0-rc.10",

but fails with
"@angular-devkit/build-angular": "0.900.0-rc.9",
"@angular/cli": "9.0.0-rc.9",
or
"@angular-devkit/build-angular": "0.900.0-rc.10",
"@angular/cli": "9.0.0-rc.10",

Description

Building a project with sourceMap:true using @angular-devkit/build-angular rc.9 or rc.10 results in build stuck (from few seconds when working to > 20 min and counting - did not have patience to wait for an eventual end or crash) in "Generating ES5 bundles for differential loading..." phase

Building the same project with @angular-devkit/build-angular rc.8 works well (30 seconds)

Setting sourceMap: false solves the problem with rc.9 or rc.10

project dependencies :

"dependencies": {
    "@angular/animations": "9.0.0-rc.9",
    "@angular/common": "9.0.0-rc.9",
    "@angular/compiler": "9.0.0-rc.9",
    "@angular/core": "9.0.0-rc.9",
    "@angular/forms": "9.0.0-rc.9",
    "@angular/localize": "9.0.0-rc.9",
    "@angular/platform-browser": "9.0.0-rc.9",
    "@angular/platform-browser-dynamic": "9.0.0-rc.9",
    "@angular/platform-server": "9.0.0-rc.9",
    "@angular/pwa": "0.900.0-rc.9",
    "@angular/router": "9.0.0-rc.9",
    "@angular/service-worker": "9.0.0-rc.9",
    "@fortawesome/fontawesome-pro": "^5.12.0",
    "@ng-bootstrap/ng-bootstrap": "^5.2.0",
    "@nguniversal/express-engine": "^9.0.0-next.14",
    "@sentry/browser": "^5.11.1",
    "@sentry/node": "^5.11.1",
    "autotrack": "^2.4.1",
    "bootstrap": "^4.4.1",
    "compression": "^1.7.4",
    "connect-timeout": "^1.9.0",
    "cookie-parser": "^1.4.4",
    "express": "^4.17.1",
    "flag-icon-css": "^3.4.5",
    "lodash-es": "^4.17.15",
    "memory-cache": "^0.2.0",
    "ng-cli-pug-loader": "^0.2.2",
    "ng2-pdf-viewer": "^6.0.2",
    "rxjs": "~6.5.4",
    "tslib": "^1.10.0",
    "typeface-lato": "^0.0.75",
    "typeface-oswald": "^1.1.3",
    "typeface-roboto": "^0.0.75",
    "typeface-ubuntu": "^0.0.65",
    "zone.js": "~0.10.2"
  },

build portion of angular.json

{
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.staging.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "outputPath": "dist/browser",
              "sourceMap": true,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                }
              ],
              "baseHref": "/",
              "localize": ["fr", "en", "de", "es"]
            },

tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": false,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}

(also tried with fullTemplateTypeCheck to false with no difference.

馃敩 Minimal Reproduction

I have not been able to setup a minimal reproduction, and the project is internal. But i can setup a private repo and share it if needed.

馃實 Your Environment


Angular CLI: 9.0.0-rc.10
Node: 10.18.1
OS: linux x64

Angular: 9.0.0-rc.9
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, platform-server, router
... service-worker
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.0-rc.10
@angular-devkit/build-angular     0.900.0-rc.10
@angular-devkit/build-optimizer   0.900.0-rc.10
@angular-devkit/build-webpack     0.900.0-rc.10
@angular-devkit/core              9.0.0-rc.10
@angular-devkit/schematics        9.0.0-rc.10
@angular/cli                      9.0.0-rc.10
@angular/pwa                      0.900.0-rc.9
@ngtools/webpack                  9.0.0-rc.10
@nguniversal/common               9.0.0-rc.0
@nguniversal/express-engine       9.0.0-rc.0
@schematics/angular               9.0.0-rc.10
@schematics/update                0.900.0-rc.10
rxjs                              6.5.4
typescript                        3.7.5
webpack                           4.41.2

devkibuild-angular high regression bufix

Most helpful comment

Having the same issue here
@angular-devkit/build-angular 0.900.0-rc.8 = <1min to generate es5 bundles
@angular-devkit/build-angular 0.900.0-rc.9 = ~12min to generate es5 bundles

All 4 comments

Can you provide the console output of a successful build? The number of output files and their corresponding sizes are the relevant aspects.

Also, can you try with Node.js 12 (latest: 12.14.1)? If encountering memory or performance issues or are working on a particularly large project, Node.js 12 is highly recommended. Node.js 12 provides significantly better memory usage and performance than Node.js 10.

Sourcemap processing is unfortunately highly intensive from both a memory and overall performance perspective. There were recent changes that greatly improved the fidelity of the generated source maps. However, it can take longer to fully process them. But it should not take that long to process.

There is no improvement using node 12.4

The project is not really large but one external dependancy is rather big (pdfjs)

> cross-env NODE_OPTIONS=--max_old_space_size=4096 cross-env NODE_OPTIONS=--max_old_space_size=4096 ng run client:build:staging

Generating ES5 bundles for differential loading...
ES5 bundle generation complete.
Generating localized bundles...
Localized bundle generation complete.

chunk {0} runtime-es2015.8b587a58e212fe61a905.js, runtime-es2015.8b587a58e212fe61a905.js.map (runtime) 2.54 kB [entry] [rendered]
chunk {0} runtime-es5.8b587a58e212fe61a905.js, runtime-es5.8b587a58e212fe61a905.js.map (runtime) 2.53 kB [entry] [rendered]
chunk {1} 1-es2015.4bc585b0269331e4d122.js, 1-es2015.4bc585b0269331e4d122.js.map () 6.64 kB  [rendered]
chunk {1} 1-es5.4bc585b0269331e4d122.js, 1-es5.4bc585b0269331e4d122.js.map () 7.85 kB  [rendered]
chunk {4} polyfills-es2015.fad31c8c247fa843f1d6.js, polyfills-es2015.fad31c8c247fa843f1d6.js.map (polyfills) 35.7 kB [initial] [rendered]
chunk {10} 10-es2015.bcd01a1e30e64b4d2c08.js, 10-es2015.bcd01a1e30e64b4d2c08.js.map () 14.8 kB  [rendered]
chunk {10} 10-es5.bcd01a1e30e64b4d2c08.js, 10-es5.bcd01a1e30e64b4d2c08.js.map () 20.1 kB  [rendered]
chunk {12} 12-es2015.ea79c92ba2138691cc7a.js, 12-es2015.ea79c92ba2138691cc7a.js.map () 4.7 kB  [rendered]
chunk {12} 12-es5.ea79c92ba2138691cc7a.js, 12-es5.ea79c92ba2138691cc7a.js.map () 6.87 kB  [rendered]
chunk {9} 9-es2015.935ee1dcfbe5344fd337.js, 9-es2015.935ee1dcfbe5344fd337.js.map () 23.6 kB  [rendered]
chunk {9} 9-es5.935ee1dcfbe5344fd337.js, 9-es5.935ee1dcfbe5344fd337.js.map () 31.9 kB  [rendered]
chunk {13} 13-es2015.caab4fc2a04e04d3d4e6.js, 13-es2015.caab4fc2a04e04d3d4e6.js.map () 13.4 kB  [rendered]
chunk {13} 13-es5.caab4fc2a04e04d3d4e6.js, 13-es5.caab4fc2a04e04d3d4e6.js.map () 20.2 kB  [rendered]
chunk {14} 14-es2015.d23881dcc587de9e1f84.js, 14-es2015.d23881dcc587de9e1f84.js.map () 7.3 kB  [rendered]
chunk {14} 14-es5.d23881dcc587de9e1f84.js, 14-es5.d23881dcc587de9e1f84.js.map () 9.79 kB  [rendered]
chunk {11} 11-es2015.ec24090b9d04b4baf38d.js, 11-es2015.ec24090b9d04b4baf38d.js.map () 30.5 kB  [rendered]
chunk {11} 11-es5.ec24090b9d04b4baf38d.js, 11-es5.ec24090b9d04b4baf38d.js.map () 39.4 kB  [rendered]
chunk {8} 8-es2015.b20b5bfd57e45b8fbb0e.js, 8-es2015.b20b5bfd57e45b8fbb0e.js.map () 66.8 kB  [rendered]
chunk {8} 8-es5.b20b5bfd57e45b8fbb0e.js, 8-es5.b20b5bfd57e45b8fbb0e.js.map () 93.2 kB  [rendered]
chunk {5} polyfills-es5.d160849e3d7e86e5bfae.js, polyfills-es5.d160849e3d7e86e5bfae.js.map (polyfills-es5) 128 kB [initial] [rendered]
chunk {7} 7-es2015.8cf59812022894206fdc.js, 7-es2015.8cf59812022894206fdc.js.map () 477 kB  [rendered]
chunk {7} 7-es5.8cf59812022894206fdc.js, 7-es5.8cf59812022894206fdc.js.map () 484 kB  [rendered]
chunk {3} pdfjsWorker-es2015.a5053c4b77f994fd2928.js, pdfjsWorker-es2015.a5053c4b77f994fd2928.js.map (pdfjsWorker) 762 kB  [rendered]
chunk {3} pdfjsWorker-es5.a5053c4b77f994fd2928.js, pdfjsWorker-es5.a5053c4b77f994fd2928.js.map (pdfjsWorker) 762 kB  [rendered]
chunk {2} main-es2015.2229117d6917b726cb15.js, main-es2015.2229117d6917b726cb15.js.map (main) 1.15 MB [initial] [rendered]
chunk {2} main-es5.2229117d6917b726cb15.js, main-es5.2229117d6917b726cb15.js.map (main) 1.37 MB [initial] [rendered]
chunk {6} styles.e708ec6f16863751f69f.css, styles.e708ec6f16863751f69f.css.map (styles) 227 kB [initial] [rendered]
Date: 2020-01-22T13:31:23.772Z - Hash: 3bb22f7da0519838e8c0 - Time: 133018ms

this build above is using the following cli version :

Angular CLI: 9.0.0-rc.10
Node: 12.14.1
OS: linux x64

Angular: 9.0.0-rc.9
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, platform-server, router
... service-worker
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.0-rc.8
@angular-devkit/build-angular     0.900.0-rc.8
@angular-devkit/build-optimizer   0.900.0-rc.8
@angular-devkit/build-webpack     0.900.0-rc.8
@angular-devkit/core              9.0.0-rc.10
@angular-devkit/schematics        9.0.0-rc.10
@angular/cli                      9.0.0-rc.10
@angular/pwa                      0.900.0-rc.8
@ngtools/webpack                  9.0.0-rc.8
@nguniversal/common               9.0.0-rc.0
@nguniversal/express-engine       9.0.0-rc.0
@schematics/angular               9.0.0-rc.10
@schematics/update                0.900.0-rc.10
rxjs                              6.5.4
typescript                        3.7.5
webpack                           4.41.2

Having the same issue here
@angular-devkit/build-angular 0.900.0-rc.8 = <1min to generate es5 bundles
@angular-devkit/build-angular 0.900.0-rc.9 = ~12min to generate es5 bundles

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

_This action has been performed automatically by a bot._

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rajjejosefsson picture rajjejosefsson  路  3Comments

IngvarKofoed picture IngvarKofoed  路  3Comments

hareeshav picture hareeshav  路  3Comments

rwillmer picture rwillmer  路  3Comments

delasteve picture delasteve  路  3Comments