css と sass のインポートを同じファイルで使用すると、生成された css の順序が正しくありません。
完全な例は、 https ://github.com/p0wl/webpack-jimdo-example/tree/master/sass-order で確認および再現できます。
次の設定があるとします。
@import 'some.sass';
.legacy_bundle {
content: 'legacy_bundle';
}
@import 'middle.css';
@import 'other.sass';
出力:
.middle {
content: 'middle';
}.some {
content: 'some'; }
.legacy_bundle {
content: 'legacy_bundle'; }
.other {
content: 'other'; }
/*# sourceMappingURL=new_cms_classes.css.map*/
.middle
最初のインポートではありませんが、最初のルールです。.some
最初のインポートであるため、最初のルールにする必要があります。
webpack.config.js (抜粋):
entry: {
"new_cms_classes.css": "legacy_bundle.css"
},
module: {
loaders: [
[
{
test: /\.sass$/,
// Passing indentedSyntax query param to node-sass
loader: "sass?indentedSyntax"
},
{
test: /legacy_.+\.css$/,
loader: ExtractTextPlugin.extract("style-loader", "css-loader?root=~!sass")
},
{
test: /\.css$/, loaders: ["style", "css?root=~"]
}
]
]
},
webpack とすべてのローダーは最新リリースです。