如何修复Angular CLI强制SSS超过sass?

时间:2019-03-06 01:17:16

标签: angular sass angular-cli

在我的项目中,我通常想利用.sass语法。 所以我创建了一个像这样的项目:

ng new myProject --style=sass

但是结果是所有样式表(包括基本样式文件)都具有.scss扩展名。 现在,我当然可以尝试使用cli进行纠正:

ng config schematics.@schematics/angular:component.styleext sass

并直接手动更改angular.json中的内容:

"schematics": {
        "@schematics/angular:component": {
          "style": "sass"
        }
      }

但是没有成功。我生成的每个新组件的样式文件都随附 .scss扩展名。 我该如何解决?

1 个答案:

答案 0 :(得分:1)

我相信您的原理图需要使用styleext而不是style

"@schematics/angular:component": {
  "styleext": "scss"
}

ng config schematics.@schematics/angular:component.styleext scss将设置您的全局默认值,该默认值应在angular.json文件的底部添加一个条目,如下所示:

"schematics": {
  "@schematics/angular:component": {
    "styleext": "sass"
  }
}

但是,如果您指定了defaultProject,则其中的任何原理图都可能会被覆盖。因此,在angular.json文件的默认项目中,将原理图中的style属性更新为styleext

"projects": {
  "my-project": {
    ...
    "schematics": {
      "@schematics/angular:component": {
        "styleext": "scss"
    ...


经过更多研究 看来您可以将CLI版本更改为较旧的版本,或者等待即将进行的更新(昨天合并的修复程序)。 Sass ext支持已被删除noted in this issue,但似乎已被重新添加noted in this issue