angular/angular-cli · warning
The 'commonChunk' option is always enabled by this builder a
Error message
The 'commonChunk' option is always enabled by this builder and will be ignored.
What it means
Warning issued by the browser-esbuild builder when 'commonChunk' is explicitly set to false. In the esbuild builder, extracting a common chunk is always enabled, so a request to disable it cannot be honored and is ignored. The build completes but chunking behaves as if commonChunk were enabled.
Source
Thrown at packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts:45
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 });
}
export function convertBrowserOptions(
options: BrowserBuilderOptions,
): Omit<ApplicationBuilderOptions, 'outputPath'> & { outputPath: OutputPathClass } {
const {View on GitHub (pinned to bb72145f9a)
Solutions
- Remove `"commonChunk": false` from the browser-esbuild target options.
- If you truly need commonChunk disabled, stay on (or return to) the Webpack '@angular-devkit/build-angular:browser' builder.
- Migrate to '@angular/build:application' and accept automatic chunk splitting.
Example fix
// before
"options": { "commonChunk": false }
// after
"options": {} Defensive patterns
Strategy: validation
Validate before calling
if (builder === '@angular-devkit/build-angular:browser-esbuild' && target.options?.commonChunk === false) {
delete target.options.commonChunk; // always enabled by this builder
} Type guard
function disablesCommonChunk(o: unknown): o is { commonChunk: false } {
return typeof o === 'object' && o !== null && (o as any).commonChunk === false;
} Prevention
- Remove Webpack-only chunking options when switching builders.
- Validate options against the '@angular/build' JSON schema in CI.
- Document builder-specific option differences for the team.
When it happens
Trigger: Running '@angular-devkit/build-angular:browser-esbuild' with `commonChunk: false` in the target options (typically migrated from the Webpack 'browser' builder where the option was supported).
Common situations: Projects that disabled the common chunk in Webpack to change lazy-loading granularity, then switched the builder to browser-esbuild without cleaning options.
Related errors
- The 'vendorChunk' option is not used by this builder and wil
- The 'webWorkerTsConfig' option is not yet supported by this
- esbuild implementation missing
- Unknown error occurred processing bundle for "${path}".
- The "@angular-devkit/build-angular:browser-esbuild" builder
AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30).
Data as JSON: /api/errors/b9e75da997e93c60.
Report an issue: GitHub.