angular / angular/angular-cli

Spread operator slow with `application` builder

オープン
#28,874 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
angular/build:application area: @angular/build freq1: low severity4: memory/performance type: bug/fix
主要言語
TypeScript
スター
27k
フォーク
11.8k
平均マージ
14時間 23分
マージ済み PR(30日)
162

説明

### 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](https://github.com/jopelle1/repro-angular-vite), 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`)

```true
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_

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

リンクされている最小再現 jopelle1/repro-angular-vite から始め、Vite と webpack を使用する application builder での spread operator のタイミングを比較してください。関係する Angular compiler と application-builder のパスを追跡し、そのうえで報告されたパフォーマンス差が解消されたか、または明確に特徴づけられているかを確認してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript, vite
領域
build-system, performance
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。