I've read the documentation, which says that if I want to use scss
I have to run the following command:
ng set defaults.styleExt scss
But when I do that and make that file, I still receive this error in my console:
styles.bundle.js:33Uncaught Error: Module build failed: Error: ENOENT: no such file or directory, open '/Users/Egen/Code/angular/src/styles.css'(…)
Use command:
In ng6 you need to use this command, according to a similar post:
A brute force change can be applied. This will work to change, but it's a longer process.
Go to the app folder src/app
Open this file: app.component.ts
Change this code
styleUrls: ['./app.component.css']
tostyleUrls: ['./app.component.scss']
Save and close.
In the same folder src/app
Rename the extension for the app.component.css file to (app.component.scss)
Follow this change for all the other components. (ex. home, about, contact, etc...)
The angular.json configuration file is next. It's located at the project root.
Search and Replace the css change it to (scss).
Save and close.
Lastly, Restart your
ng serve -o
.If the compiler complains at you, go over the steps again.
Make sure to follow the steps in app/src closely.
For users of the Nrwl extensions who come across this thread: all commands are intercepted by Nx (e.g.,
ng generate component myCompent
) and then passed down to the AngularCLI.The command to get SCSS working in an Nx workspace:
ng config schematics.@nrwl/schematics:component.styleext scss
Open angular.json file
1.change from
"schematics": {}
to
"src/styles.css"
to
"src/styles.scss"
then check and rename all
.css
files and update component.ts files styleUrls from.css to .scss
For existing projects:
In
angular.json
fileIn
build
part and intest
part, replace:"styles": ["src/styles.css"],
by"styles": ["src/styles.scss"],
Replace:
"schematics": {},
by"schematics": { "@schematics/angular:component": { "style": "scss" } },
In your project rename your
.css
files to.scss
For a new project, this command do all the work:
For global configuration
New versions seems to not have a global command