2017-05-29 48 views
2

我得到这样的错误预期'风格'是一个字符串数组。 Angular2

Uncaught Error: Expected 'styles' to be an array of strings.

这里是我的代码

styleUrls:[ 
    "../../styles/login.component.styles.scss" 
], 

当我让他们以同样的方式声明,但与样式文件在同一目录中存在的部分问题不会发生。

+0

'styleUrls:[ require(“../../ styles/login.component.styles.scss”) ]'? – echonax

+0

我得到**无法找到模块“。”** – Stefan

+0

我真的不明白为什么这不起作用,我甚至在一个有角度的项目中测试它,它工作。我怀疑还有其他的错误。你有其他的错误信息吗?当你使用'ng serve'或者当你为生产构建时会出现这个错误吗?这是一个角度cli生成的项目?你弹出生成webpack.config文件? –

回答

1

我一直在努力应对类似的事情,同时将现有的角度移植到angular-cli 1.2.6;我们始终使用SCSS。

注意:我不知道我需要做出的修改(下面概述)是来自我们遗留体系结构的构件,是框架的限制还是其他内容,但它们都适用于我。

多的调试和从各种渠道试图建议后,我发现了一些的WebPack魔法使从一个@Component文件引用导致的编译CSS的styleUrl[]这也是.angular-cli.jsonstyles[]阵列被解释为{}。预期的输出是编译后的SCSS文件的CSS表示形式。

那么这将导致angular-compilerassertArrayOfStrings()调用throw与莫属Expected '" + identifier + "' to be an array of strings.

我不得不作出以下修改我的申请得到它的工作:

  1. 全球样式表引用app.componentstyleUrls[]阵列必须移动到.angular-cli.jsonapp[0].styles[]阵列。
  2. app.componentstyleUrls[]数组应该是空的。
  3. app.componentencapsulation: ViewEncapsulation.None meta-decorator可以被删除。
  4. .angular-cli.jsonapp[0].styles[]数组中引用的样式表不能在任何组件的styleUrls[]装饰器中引用。

I filed an issue为此。

相关问题