Description
Command
build
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
browser builder (webpack based)
Description
When running ng build --watch
with either the build-esbuild or application builder, there is first a build step where everything is copied to the destination folder, including assets, but if a change is made to an asset after the initial bundle, then nothing happens. I'd expect the assets defined in the builders' "assets" option to also be updated during watch mode.
When I try the same in the webpack based "browser" builder, then everything is copied.
Minimal Reproduction
- In angular.json, put the following inside "architect":
"build": {
"builder": "@angular-devkit/build-angular:application",
"options": {
"assets": ["src/assets"],
"index": "src/index.html",
"browser": "src/main.ts",
"outputPath": "dist",
"tsConfig": "tsconfig.app.json"
}
}
- Make sure you have an index.html, main.ts and tsconfig.app.json.
- Put some text file inside of src/assets.
- Run
ng build --watch
. - Make a change to the text file inside the assets folder
- Notice that the file hasn't been updated inside the dist folder
Exception or Error
No response
Your Environment
Angular CLI: 18.2.1
Node: 20.12.0
Package Manager: npm 10.5.0
OS: win32 x64
Angular: 18.2.1
... animations, cdk, cli, common, core, elements, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1802.1
@angular-devkit/build-angular 18.2.1
@angular-devkit/core 18.2.1
@angular-devkit/schematics 18.2.1
@schematics/angular 18.2.1
rxjs 7.8.1
typescript 5.5.4
Anything else relevant?
I have tried to dive into the Angular CLI source code, and I found that the watcher is given which files to watch here. I think the result comes from here, but it's a bit abstracted away and I can't easily find the source.