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

  1. Switch the ssr-dev-server target builder to @angular/build:ssr-dev-server in angular.json.
  2. Run `ng update` migrations to move SSR dev tooling to the new build system.
  3. 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

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


AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30). Data as JSON: /api/errors/73af2e1ef0089976. Report an issue: GitHub.