diff --git a/packages/angular_devkit/build_angular/src/builders/application/tests/behavior/component-stylesheets_spec.ts b/packages/angular_devkit/build_angular/src/builders/application/tests/behavior/component-stylesheets_spec.ts index 037ff4c9d1..3cbb5d9463 100644 --- a/packages/angular_devkit/build_angular/src/builders/application/tests/behavior/component-stylesheets_spec.ts +++ b/packages/angular_devkit/build_angular/src/builders/application/tests/behavior/component-stylesheets_spec.ts @@ -23,5 +23,26 @@ describeBuilder(buildApplication, APPLICATION_BUILDER_INFO, (harness) => { const { result } = await harness.executeOnce(); expect(result?.success).toBeTrue(); }); + + it('should maintain optimized empty Sass stylesheet when original has content', async () => { + await harness.modifyFile('src/app/app.component.ts', (content) => { + return content.replace('./app.component.css', './app.component.scss'); + }); + await harness.removeFile('src/app/app.component.css'); + await harness.writeFile('src/app/app.component.scss', '@import "variables";'); + await harness.writeFile('src/app/_variables.scss', '$value: blue;'); + + harness.useTarget('build', { + ...BASE_OPTIONS, + optimization: { + styles: true, + }, + }); + + const { result } = await harness.executeOnce(); + expect(result?.success).toBeTrue(); + + harness.expectFile('dist/browser/main.js').content.not.toContain('variables'); + }); }); }); diff --git a/packages/angular_devkit/build_angular/src/tools/esbuild/angular/angular-host.ts b/packages/angular_devkit/build_angular/src/tools/esbuild/angular/angular-host.ts index 0ce3d0f9bf..66108aebb3 100644 --- a/packages/angular_devkit/build_angular/src/tools/esbuild/angular/angular-host.ts +++ b/packages/angular_devkit/build_angular/src/tools/esbuild/angular/angular-host.ts @@ -74,7 +74,7 @@ export function createAngularCompilerHost( context.resourceFile ?? undefined, ); - return result ? { content: result } : null; + return typeof result === 'string' ? { content: result } : null; }; // Allow the AOT compiler to request the set of changed templates and styles