angular/angular-cli · warning
The "@angular-devkit/build-angular:ssr-dev-server" builder i
Error message
The "@angular-devkit/build-angular:ssr-dev-server" builder is deprecated as part of Angular's Webpack support deprecation. Use "@angular/build:ssr-dev-server" instead. For more information, see https://angular.dev/tools/cli/build-system-migration.
What it means
The @angular-devkit/build-angular:ssr-dev-server builder warns that it is deprecated as part of Angular's Webpack support deprecation; users should use @angular/build:ssr-dev-server (esbuild/Vite-based).
Source
Thrown at packages/angular_devkit/build_angular/src/builders/ssr-dev-server/index.ts:66
import { getAvailablePort, spawnAsObservable, waitUntilServerIsListening } from './utils';
/** Log messages to ignore and not rely to the logger */
const IGNORED_STDOUT_MESSAGES = [
'server listening on',
'Angular is running in development mode. Call enableProdMode() to enable production mode.',
];
export type SSRDevServerBuilderOptions = Schema;
export type SSRDevServerBuilderOutput = BuilderOutput & {
baseUrl?: string;
port?: string;
};
export function execute(
options: SSRDevServerBuilderOptions,
context: BuilderContext,
): Observable<SSRDevServerBuilderOutput> {
context.logger.warn(
'The "@angular-devkit/build-angular:ssr-dev-server" builder is deprecated as part of Angular\'s Webpack support deprecation. ' +
'Use "@angular/build:ssr-dev-server" instead. For more information, see https://angular.dev/tools/cli/build-system-migration.',
);
let browserSync: typeof import('browser-sync');
try {
browserSync = createRequire(context.workspaceRoot + '/')('browser-sync');
} catch {
return of({
success: false,
error:
// eslint-disable-next-line max-len
'Required dependency `browser-sync` is not installed, most likely you need to run `npm install browser-sync --save-dev` in your project.',
});
}
const bsInstance = browserSync.create();
View on GitHub (pinned to bb72145f9a)
Solutions
- Switch the ssr-dev-server target builder to @angular/build:ssr-dev-server in angular.json.
- Run `ng update` migrations to move SSR dev tooling to the new build system.
- Ignore the warning until migration; the builder remains functional for now.
Example fix
// angular.json // before "builder": "@angular-devkit/build-angular:ssr-dev-server" // after "builder": "@angular/build:ssr-dev-server"
Defensive patterns
Strategy: fallback
Validate before calling
const cfg = require('./angular.json');
if (JSON.stringify(cfg).includes('@angular-devkit/build-angular:ssr-dev-server')) console.warn('Migrate to @angular/build:ssr-dev-server'); Prevention
- Migrate SSR dev-server targets to @angular/build:ssr-dev-server on upgrade.
- Run `ng update` so SSR targets are rewritten automatically.
- Smoke-test `ng serve` with SSR after each Angular upgrade.
When it happens
Trigger: Running `ng run project:ssr-dev-server` (ng serve with SSR) using the legacy webpack-based ssr-dev-server builder.
Common situations: SSR dev workflows on upgraded Angular projects where angular.json still points at the webpack-based builder.
Related errors
- The "@angular-devkit/build-angular:server" builder is deprec
- 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
- Only the "application" and "browser-esbuild" builders suppor
AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30).
Data as JSON: /api/errors/73af2e1ef0089976.
Report an issue: GitHub.