File replacements are ignored for web workers
- Dominant language
- TypeScript
- Stars
- 27k
- Forks
- 11.8k
- Avg merge
- 14h 23m
- Merged PRs (30d)
- 162
Description
### Command
build, serve
### Is this a regression?
- [x] Yes, this behavior used to work in the previous version
### The previous version in which this bug was not present was
v18
### Description
Hi, we recently updated to angular v19. During that we also migrated the builder to the recommended `@angular/build` builder, but in my tests the error also occured for the old devkit builder. After the update, we noticed that file replacements are ignored for web workers, see minimal reproduction. Before our upgrade, this was working without problems. I'm happy about any help :)
### Minimal Reproduction
StackBlitz: https://stackblitz.com/edit/4gqtqodb
After everything was built, you will see in the console:
```
Component: production
Worker: development
```
However, as defined in the `angular.json`, the file `env.ts` should be replaced by `env.prod.ts`, which is done correctly in the component.
### Exception or Error
```text
```
### Your Environment
```text
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 19.0.7
Node: 18.20.3
Package Manager: npm 10.2.3
OS: linux x64
Angular: 19.0.6
... animations, common, compiler, compiler-cli, core, forms
... platform-browser
Package Version
------------------------------------------------------
@angular-devkit/architect 0.1900.7
@angular-devkit/core 19.0.7
@angular-devkit/schematics 19.0.7
@angular/build 19.0.7
@angular/cdk 19.0.5
@angular/cli 19.0.7
@angular/material 19.0.5
@schematics/angular 19.0.7
rxjs 7.8.1
typescript 5.6.3
zone.js 0.15.0
```
### Anything else relevant?
Seems to happen for both build and serve, local and on stackblitz and for both the devkit and the new builder.
Contributor guide
Research direction
Start with the linked StackBlitz reproduction and its angular.json, then compare how file replacements are applied to the component and web worker for both build and serve. Done means env.prod.ts is used by the worker as well as the component under the configured replacement, using either builder.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100