如何在Angular 6中启用SCSS
首先
就在前几天,Angular6 正式版终于发布了?
然而,Angular-CLI 的设置文件 .angular-cli.json 已经被改成了 angular.json,并且随之而来的是一系列重大的规格变更。
本篇文章将简要介绍 angular.json 的使用方法,以其中最为流行的「启用scss」为例进行展示。
在 angular.json 中启用 scss。
查看 angular.json 的规格,可以看到 angular.json 在 projects 属性中设置了项目,而且在该项目的 schematics 属性中以 @schematics/angular:component 或 @schematics/angular:directive 作为键名来输入要设置的项目内容,似乎已经改变为这种方式。
试试看
ng new my-app
我尝试创建样本项目,并自动生成了下面的 angular.json 文件。
...
"projects": {
"my-app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
...
只需要一个选项:
这个示意图里
"schematics": {
"@schematics/angular:component": {
"styleext": "scss"
}
}
通过设置,现在可以在CLI中使用新的组件生成并使用启用了scss的状态。
> ng g c test
CREATE src/app/test/test.component.scss (0 bytes)
CREATE src/app/test/test.component.html (23 bytes)
CREATE src/app/test/test.component.spec.ts (614 bytes)
CREATE src/app/test/test.component.ts (262 bytes)
在上述例子中,调整框图也可以根据项目自身的设置来进行,但是如果您不希望在每个项目中都要进行设置,可以将其作为angular.json文件的顶级属性来使其在所有项目中生效。
利用CLI进行设置。
如果要通过CLI进行设置,则似乎应该这样做。
但是,ng set被更换为ng config。
但是,,在6.0.0中会出现错误。我认为它将在不久的将来得到修复。
ng config schematics.@schematics/angular:component.styleext scss
附加说明:
目前的情况是,根据JSON格式的指定,似乎可以从命令行界面进行设置。
ng config schematics.@schematics/angular:component '{ styleext: "scss"}'
创建新项目时
在创建新项目时,通过添加–style=scss参数,可以确保输出了schematics中配置好的angular.json(6.0.0版本)。
ng new my-app --style=scss
原理图的默认设置项目清单
-
- @schematics/angular:component
-
- @schematics/angular:directive
-
- @schematics/angular:module
-
- @schematics/angular:service
-
- @schematics/angular:pipe
- @schematics/angular:class
如果你想知道那个设置在哪里去了!?或许你可以试着找到上述内容。