angular/angular-cli · warning

The 'vendorChunk' option is not used by this builder and wil

Error message

The 'vendorChunk' option is not used by this builder and will be ignored.

What it means

This is a warning emitted by the deprecated esbuild-based browser builder when the 'vendorChunk' option is present in the user's configuration. The esbuild builder splits chunks differently than the legacy Webpack builder and has no concept of a separate vendor chunk, so the option is silently ignored rather than applied. The build still proceeds normally.

Source

Thrown at packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts:40

 * @param context The Architect builder context object
 * @returns An async iterable with the builder result output
 */
export async function* buildEsbuildBrowser(
  userOptions: BrowserBuilderOptions,
  context: BuilderContext,
  infrastructureSettings?: {
    write?: boolean;
  },
  plugins?: Plugin[],
): AsyncIterable<BuilderOutput> {
  context.logger.warn(
    'The "@angular-devkit/build-angular:browser-esbuild" builder is deprecated as part of Angular\'s Webpack support deprecation. ' +
      'Use "@angular/build:application" instead. For more information, see https://angular.dev/tools/cli/build-system-migration.',
  );

  // Warn about any unsupported options
  if (userOptions['vendorChunk']) {
    context.logger.warn(
      `The 'vendorChunk' option is not used by this builder and will be ignored.`,
    );
  }
  if (userOptions['commonChunk'] === false) {
    context.logger.warn(
      `The 'commonChunk' option is always enabled by this builder and will be ignored.`,
    );
  }
  if (userOptions['webWorkerTsConfig']) {
    context.logger.warn(`The 'webWorkerTsConfig' option is not yet supported by this builder.`);
  }

  // Convert browser builder options to application builder options
  const normalizedOptions = convertBrowserOptions(userOptions);

  // Execute the application builder
  yield* buildApplication(normalizedOptions, context, { codePlugins: plugins });
}

View on GitHub (pinned to bb72145f9a)

Solutions

  1. Remove the 'vendorChunk' option from the browser-esbuild target configuration in angular.json.
  2. If a vendor chunk is required, migrate to the '@angular/build:application' builder and adjust chunking strategy accordingly (chunking is automatic).
  3. Move the option to a separate Webpack-based builder target if you still need Webpack behavior.

Example fix

// angular.json before
"builder": "@angular-devkit/build-angular:browser-esbuild",
"options": { "vendorChunk": true, "outputPath": "dist/app" }
// after
"builder": "@angular-devkit/build-angular:browser-esbuild",
"options": { "outputPath": "dist/app" }
Defensive patterns

Strategy: validation

Validate before calling

const esbuildOptions = new Set(['outputPath','index','main','browser','polyfills','tsConfig','assets','styles','scripts','...']);
if (target.options && 'vendorChunk' in target.options && target.builder.includes('browser-esbuild')) {
  console.warn('vendorChunk is ignored by browser-esbuild; remove it.');
}

Type guard

function hasVendorChunk(o: object): o is { vendorChunk: unknown } {
  return 'vendorChunk' in o;
}

Prevention

When it happens

Trigger: Running the '@angular-devkit/build-angular:browser-esbuild' builder with `vendorChunk: true` (or any truthy value) in angular.json, project.json, or the ng build command line.

Common situations: Teams migrating from the Webpack 'browser' builder to 'browser-esbuild' (or switching between builders) while keeping the same options schema; shared angular.json used for both builders; copying Webpack-era build options into new targets.

Related errors


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