【发布时间】:2017-10-18 04:27:48
【问题描述】:
我正在努力在新的 Angular 项目中使用 sass。我使用 CLI 中的 --style=scss 标志创建了项目,然后使用 "styleExt": "scss" 和 "styles": ["styles.scss"] 更新了 .angular-cli.json 文件内容。项目构建成功,但来自 xyz.component.scss 等文件的样式未编译,因此未包含在样式包中。
我设法将组件样式文件添加到 .angular-cli.json 文件 "styles": ["styles.scss", "./path/to/file/xyz.component.scss"] 但这导致运行时错误:Error: Uncaught (in promise): Expected 'styles' to be an array of strings。
为了避免这个错误,我从xyz.component.ts 文件中的@Component 注释中删除了styleUrls: ['./xyz.component.scss']。
现在一切正常,但我不明白这些 scss 文件发生了什么。为什么我必须从@Component 中删除对它们的引用? (使用ng g component cli 命令时会自动引用它们)。是否有任何其他选项可以使其在不引用 .angular-cli.json 中的 .scss 文件并使用 @Component 引用的情况下工作?
我的版本设置:
@angular/cli: 1.2.7
node: 6.10.0
os: win32 x64
@angular/animations: 4.3.3
@angular/common: 4.3.3
@angular/compiler: 4.3.3
@angular/core: 4.3.3
@angular/forms: 4.3.3
@angular/http: 4.3.3
@angular/platform-browser: 4.3.3
@angular/platform-browser-dynamic: 4.3.3
@angular/router: 4.3.3
@angular/cli: 1.2.7
@angular/compiler-cli: 4.3.3
@angular/language-service: 4.3.3
【问题讨论】:
-
如果您从头开始打开一个新项目怎么办?
ng new my-proj --style=scss?这对你有用吗? -
@GioraGuttsait 我也尝试使用该命令创建新项目,但结果相同。