我努力在新鲜的角度项目中使用sass。我在CLI中使用--style=scss
标志创建了项目,然后使用.angular-cli.json
和"styleExt": "scss"
更新了"styles": ["styles.scss"]
文件内容。项目构建是成功的,但来自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
。
为避免此错误,我从styleUrls: ['./xyz.component.scss']
个文件中的@Component
注释中删除了xyz.component.ts
。
现在一切正常,但我不明白这些scss文件是怎么回事。为什么我必须从@Component
删除对它们的引用? (使用ng g component
cli命令时会自动引用它们)。是否有其他选项可以在不引用.scss
中的.angular-cli.json
文件并使用@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
答案 0 :(得分:0)
看起来你告诉NG CLI你想要使用SASS,但是你试图用它来scss文件。
如果您想编写SCSS,请将您的标志更改为SCSS。
ng new My_New_Project --style=scss
VS
ng new My_New_Project --style=sass
此外,您只需运行命令即可更改任何其他配置或删除任何内容,尤其是在生成组件时。
ng generate component [name]
NG CLI更新
全局
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest
本地
rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install
答案 1 :(得分:0)
我通过卸载angular-cli
并在1.4.7
版本中重新安装来解决组件样式问题。然后使用--style=scss
生成新项目。