31

We are using an Angular 11 app to create a web component. For this it is necessary that all styles are bundled inline into a single JS file. Before Angular 11, we used to do this with extractCss: false in then angular.json config. Now this option has been marked deprecated, and I have not found any documentation on how this should be accomplished now. NB. The extractCss: false still works for the moment.

Gregory Bleiker
  • 644
  • 1
  • 7
  • 12

3 Answers3

39

One of the changes for Angular CLI 11.0 is deprecation of extractCss configuration property.

Getting error “extractCss is deprecated” comes because it has default value as true now. extractCss can be safely removed from angular.json or during the upgrade schematics should do it for you. This means that we don’t use styles.js anymore during the application build. The migration schematic should remove unused properties or replace them with the new alternative once you do the upgrade.

https://angular.io/cli/build

--extract-css

Deprecated: Deprecated since version 11.0. No longer required to disable CSS extraction for HMR. Extract CSS from global styles into '.css' files instead of '.js'.

CodeSamurai
  • 623
  • 3
  • 6
  • 18
    How does this answer the question? I mean, the question was: how to build web components now, that the extractCss is deprecated? – Vlad Jul 02 '21 at 13:08
  • 1
    I tried out to build and run in development and production mode, without custom webpack file. I removed "extractCss" from angular.json file and changed "./node_modules/bootstrap/dist/css/bootstrap.min.css" under "styles" option to "bootstrap/dist/css/bootstrap.min.css". Styling works well. In development mode, there are styles.css, styles.js listed. In production mode there is styles.{hashCode}.css file generated that contains all the styles, placed in app/dist folder. With custom webpack, probably somebody else can give a good answer. – CodeSamurai Jul 16 '21 at 14:36
  • I have done the upgrade to angular 13, but I still see the style.js in prod – albanx May 21 '22 at 09:08
5

Removing extractCss in angular.json solves the problem

"extractCss": true

-1

I ran into this problem on the new Angular 13. In my case I solved it by adding styles to app.component.scss