Spread operator slow with `application` builder

Open
#28,874 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
angular, typescript, vite

Research direction

Start with the linked minimal reproduction, jopelle1/repro-angular-vite, and compare the spread-operator timing under the application builder using Vite and webpack. Trace the Angular compiler and application-builder paths involved, then verify that the reported performance gap is resolved or clearly characterized.

Written by the indexing model from the issue text.

Description

angular/build:application area: @angular/build freq1: low severity4: memory/performance type: bug/fix
Which @angular/* package(s) are the source of the bug?

compiler

Is this a regression?

No

Description

Hello,
I noticed that the spread operator is significantly slower (sometimes more than 2x slower) when using vite instead of webpack.
This doubles the loading time of some of our components.

In my minimal reproduction, I get an average of 10ms with webpack and 35ms with vite, with both firefox and chrome.

Is this indeed an issue with angular and is there any way to fix it?

Thank you

Please provide a link to a minimal reproduction of the bug

https://github.com/jopelle1/repro-angular-vite

Please provide the environment you discovered this bug in (run ng version)
Angular CLI: 17.3.11
Node: 18.20.4
Package Manager: npm 10.8.2
OS: linux x64

Angular: 17.3.12
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1703.11
@angular-devkit/build-angular   17.3.11
@angular-devkit/core            17.3.11
@angular-devkit/schematics      17.3.11
@angular/cli                    17.3.11
@schematics/angular             17.3.11
rxjs                            7.8.1
typescript                      5.4.5
zone.js                         0.14.10
Anything else?

No response

Dominant language
TypeScript
Stars
27k
Forks
11.8k
Avg merge
16h 35m
Merged PRs (30d)
176

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from angular/angular-cli

All issues in angular/angular-cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.