使用webpack

时间:2017-06-10 14:13:42

标签: css angular webpack

这是我得到的错误:

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

即使我已经在字符串数组中指定了样式:

styleUrls: ['./app.component.css']

这是相关的代码,任何想法我做错了什么?

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `<h2 class="float-left">Hey</h2>`,
  styleUrls: ['./app.component.css']
})
export class AppComponent { }

app.component.css

.float-left {
  float: left;
}

来自webpack.common.js的片段

module: {
  rules: [{
    test: /\.ts$/,
    loaders: ['awesome-typescript-loader', 'angular2-template-loader']
  },
  {
    test: /\.html$/,
    loader: 'html-loader'
  },
  {
    test: /\.css$/,
    loader: 'css-loader'
  }]
},

2 个答案:

答案 0 :(得分:1)

由于我没有亲身经历过这一点 - 我确实找到了一个封闭的主题(但最近添加了一些内容) - 这可能会帮助您解决问题。

https://github.com/webpack-contrib/style-loader/issues/123

第一个建议,并且显然在当时工作,解决方案对我来说就是这个:

{ test: /\.css$/, loaders: ['to-string-loader', 'css-loader'] }

还有其他建议和解决方案进一步列出;希望其中一个可以帮助您解决问题。

有一点需要注意 - 如果你使用的是angular-cli,它似乎可能会有所不同。如果您 ,那么请确保您使用webpack遵循他们的指导原则,因为它们有一些小的差异,而不是使用非angular-cli构建。

答案 1 :(得分:0)

你需要在css-loader之后使用style-loader。

test: /\.css$/,
use: [{loader: 'style-loader'},{loader: 'css-loader'}]

&#34>中的装载机使用&#34;数组按从数组中的最后一个到数组中的第一个顺序运行。首先运行css-loader来准备CSS,然后将结果传递给style-loader以在页面中嵌入样式。