初始化
我正在尝试使用sass-loader和postcss-loader来使用webpack。我已经尝试了不同的解决方案,但都没有像我想要的那样工作。
我尝试了Angular 2 Starter Pack中的解决方案,使用了raw-loader和sass-loader,但是postcss-loader没有起作用。
代码
Angular 2组件
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
// styles: [
// require('./app.component.scss')
// ]
})
Webpack 模块加载器
{
test: /\.scss$/,
loaders: ['to-string-loader', 'css-loader', 'postcss-loader', 'resolve-url-loader', 'sass-loader']
}
问题
使用这些代码可以正常工作,但样式被添加到 <head>
标签中的 <style>
标签内。到某个时候,我将会有成百上千行样式,我想避免这种情况。
如果我把我的加载器代码更改为:
loader: ExtractTextPlugin.extract('to-string-loader', 'css-loader', 'postcss-loader', 'resolve-url-loader', 'sass-loader?sourceMap')
并将此添加到webpack配置中
plugins: [
new ExtractTextPlugin('style.css')
]
出现了错误。
未捕获的错误:期望'styles'是一个字符串数组。
在HTML代码中已经链接了style.css文件。
我正在寻找一种方案,允许我使用Sass、PostCSS和单个.css文件。