Question presented to candidate: "Our Angular app still uses the old webpack browser builder and a full rebuild takes minutes. What did the Angular team change in the build system, what do ng build and ng serve actually run today, and what would we have to change to migrate?"
What a strong answer should cover:
- The application builder (
@angular/build:application) bundles with esbuild; it has been the default for new projects since v17 and replaced the webpack-basedbrowserbuilder. ng serveuses@angular/build:dev-server: the same esbuild build in watch mode, served through Vite, which pre-bundles dependencies and handles reloads.- It is still the full Angular compiler (AOT, type-checked templates), just wired into esbuild; bundles are ES modules with code splitting for lazy routes.
- Dev-server details: output stays in memory, template and style edits are hot-replaced ("Component update sent"), TypeScript edits reload the page.
- Migration:
ng updateoffers ause-application-buildermigration; option names change (mainβbrowser), output moves todist/<app>/browser, and webpack-specific config (custom webpack, some plugins) has no direct equivalent. @angular/buildis a separate, lighter package that does not pull in webpack.
Clarifying questions expected:
- "Do we use a custom webpack config or webpack-only plugins today?"
- "Is SSR or prerendering part of the build?"
Code / implementation expected: Optional β the build/serve targets in angular.json, and real build output.