angular/angular-cli · warning
The "@angular-devkit/build-angular:dev-server" builder is de
Error message
The "@angular-devkit/build-angular:dev-server" builder is deprecated as part of Angular's Webpack support deprecation. Use "@angular/build:dev-server" instead. For more information, see https://angular.dev/tools/cli/build-system-migration.
What it means
Deprecation warning shown whenever the Webpack-based '@angular-devkit/build-angular:dev-server' builder runs. Angular is deprecating Webpack dev-server support in favor of the Vite/esbuild-based '@angular/build:dev-server'. Functionality continues but the builder will eventually be removed.
Source
Thrown at packages/angular_devkit/build_angular/src/builders/dev-server/builder.ts:76
}
context.logger.warn(
'The "@angular-devkit/build-angular:dev-server" builder is deprecated as part of Angular\'s Webpack support deprecation. ' +
'Use "@angular/build:dev-server" instead. For more information, see https://angular.dev/tools/cli/build-system-migration.',
);
return defer(() => initialize(options, projectName, context, extensions?.builderSelector)).pipe(
switchMap(({ builderName, normalizedOptions }) => {
// Use vite-based development server for esbuild-based builds
if (isEsbuildBased(builderName)) {
if (transforms?.logging || transforms?.webpackConfiguration) {
throw new Error(
`The "application" and "browser-esbuild" builders do not support Webpack transforms.`,
);
}
if (options.publicHost) {
context.logger.warn(
`The "publicHost" option will not be used because it is not supported by the "${builderName}" builder.`,
);
}
if (options.disableHostCheck) {
context.logger.warn(
`The "disableHostCheck" option will not be used because it is not supported by the "${builderName}" builder.`,
);
}
// New build system defaults hmr option to the value of liveReload
normalizedOptions.hmr ??= normalizedOptions.liveReload;
// New build system uses Vite's allowedHost option convention of true for disabling host checks
if (normalizedOptions.disableHostCheck) {
(normalizedOptions as unknown as { allowedHosts: true }).allowedHosts = true;
} else {
normalizedOptions.allowedHosts ??= [];View on GitHub (pinned to bb72145f9a)
Solutions
- Switch the serve target builder to '@angular/build:dev-server' in angular.json.
- Run `ng update @angular/cli` to get the automated build-system migration.
- If staying temporarily on Webpack, plan removal since the builder will be dropped.
Example fix
// before "builder": "@angular-devkit/build-angular:dev-server" // after "builder": "@angular/build:dev-server"
Defensive patterns
Strategy: validation
Validate before calling
if (target.builder === '@angular-devkit/build-angular:dev-server') {
console.warn('Deprecated dev-server builder; migrate serve target to @angular/build:dev-server.');
} Type guard
function isLegacyDevServer(t: { builder: string }): boolean {
return t.builder === '@angular-devkit/build-angular:dev-server';
} Prevention
- Migrate serve targets together with build targets to avoid mixed stacks.
- Use `ng update @angular/cli` rather than manual builder swaps.
- Review serve options (publicHost, disableHostCheck) after migration.
When it happens
Trigger: Any `ng serve` (or programmatic schedule) using a target configured with '@angular-devkit/build-angular:dev-server'.
Common situations: Upgraded workspaces still serving with the old builder because angular.json was not migrated; mixed teams where some targets use '@angular/build:dev-server' and others the legacy one.
Related errors
- The "@angular-devkit/build-angular:browser" builder is depre
- The "@angular-devkit/build-angular:ssr-dev-server" builder i
- The "@angular-devkit/build-webpack:webpack-dev-server" build
- The "application" and "browser-esbuild" builders do not supp
- Only the "application" and "browser-esbuild" builders suppor
AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30).
Data as JSON: /api/errors/6f50bd36d5074329.
Report an issue: GitHub.