angular / angular/angular-cli

main.js ends up in Lazy loaded Chunks

Open
#28,786 0 comments 0 reactions 0 assignees View on GitHub
area: @angular-devkit/build-angular devkit/build-angular:browser freq1: low severity2: inconvenient type: bug/fix
Dominant language
TypeScript
Stars
27k
Forks
11.8k
Avg merge
14h 23m
Merged PRs (30d)
162

Description

### Which @angular/* package(s) are the source of the bug?

core

### Is this a regression?

Yes

### Description

setting the **bundleName** for one of the styles to "main" results in main.js end up in **Lazy Loaded Chunks** category
That also means the main.js doesn't have any hash at the end of it's filename.

```
{
"input": "styles/main.scss",
"bundleName": "main",
"inject": false
},
```

```
Initial chunk files | Names | Raw size | Estimated transfer size
polyfills.45732861e6a6851d.js | polyfills | 34.19 kB | 11.03 kB

| Initial total | 34.19 kB | 11.03 kB

Lazy chunk files | Names | Raw size | Estimated transfer size
main.css, main.js | main | 277.90 kB | 49.44 kB
runtime.a9fc7548b14f6ea7.js | runtime | 1.06 kB | 587 bytes
```

Proposed solution

Angular should report this collision as a warning. I spent hours figuring this out.

### Please provide a link to a minimal reproduction of the bug

_No response_

### Please provide the exception or error you saw

_No response_

### Please provide the environment you discovered this bug in (run `ng version`)

Angular: 18.1.4
... animations, cdk, cli, common, compiler, compiler-cli, core
... forms, language-service, platform-browser
... platform-browser-dynamic, router

Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1801.4
@angular-devkit/build-angular 18.1.4
@angular-devkit/core 18.1.4
@angular-devkit/schematics 18.1.4
@schematics/angular 18.1.4
rxjs 7.8.1
typescript 5.5.4
zone.js 0.14.4

### Anything else?

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue with the shown styles configuration on Angular 18.1.4, using bundleName "main" and inject false, then inspect how the build classifies the generated files. Done means the name collision is reported as a warning and the confusing lazy-chunk output is addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
build-system, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.