我使用的是Angular 13.0.4,想要将CSS文件更新为SCSS。我尝试了不同的方法,但没有成功运用那些技巧,如何在现有的Angular项目中将CSS更改为SCSS。
ng add schematics-scss-migrate
ng config defaults.styleExt=css
和ng config schematics.@schematics/angular:component.styleext scss
都不起作用,因为Angular CLI将尝试在angular.json
文件中更改这些选项,而默认CSS选项根本没有创建。如果这些选项都无法解决问题,您可以首先在angular.json
文件中自己添加条目,在下面。{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"myProject": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
...
当然,这只会更改新生成组件的扩展名。如果您需要迁移项目,则必须将所有样式文件的扩展名从CSS更改为SCSS,并且还要更改每个组件的@Component
指令中对这些文件的引用。
ng config defaults.styleExt=scss
如果出现错误:“Value cannot be found”,则使用以下命令:
ng config schematics.@schematics/angular:component.styleext scss
(*来源:Angular CLI SASS options)
将现有的.css文件重命名为.scss(例如styles.css和app/app.component.css)
指定CLI查找styles.scss
在angular.json中的apps[0].styles中手动更改文件扩展名
4.将组件指向找到你的新样式文件 将你的组件中的styleUrls更改为匹配你的新文件名
angular.json
文件中?"stylePreprocessorOptions": { "includePaths": ["src/scss"] },
然后,你是否已经将每个 .css
文件更改为 .scss
? - Raphaël Balet