我使用webpack配置我的angular2应用程序包 .
我使用sass来设计页面 .
用于解析组件样式的sass的加载器链是: raw!sass
当我使用它进行开发而不进行缩小时,它可以正常工作 .
当我使用UglifyJS插件时它破坏了设计,我看到它改变了导入的css类中的类位置 .
我的组件:
@Component({
selector: 'navigation-bar',
template: require('./navigation.component.html'),
styles: [require('./navigation.component.scss')],
directives: [ROUTER_DIRECTIVES]
})
export class NavigationComponent {
}
我的webpack配置样式:
{
test: /\.scss$/,
exclude: PathHelper.getPathFromRoot('src', 'app', 'modules'),
loader: ExtractTextPlugin.extract('style', 'css!resolve-url!sass?sourceMap')
},
{
test: /\.scss$/,
include: PathHelper.getPathFromRoot('src', 'app', 'modules'),
loader: 'raw!sass'
},
{
test: /\.css$/,
exclude: PathHelper.getPathFromRoot('src', 'app', 'modules'),
loader: ExtractTextPlugin.extract('style', 'css!resolve-url!css?sourceMap')
},
{
test: /\.css$/,
include: PathHelper.getPathFromRoot('src', 'app', 'modules'),
loader: 'raw!resolve-url'
}
scss文件:
@import "../../../../commonStyles/_colors";
@import '../../../../../../node_modules/materialize-css/dist/css/materialize.min';
nav{
@extend .blue;
.brand-logo{
@extend .left;
margin-left: 1rem;
margin-right: 1rem;
}
.navigation-options {
@extend .right;
.dropdown-button{
padding: 0;
i{
padding-left: 1rem;
padding-right: 1rem;
}
}
.dropdown-content{
width: auto;
li{
a{
@extend .blue-text;
i.material-icons{
display: inline;
vertical-align: middle;
margin-right: 1rem;
}
.text{
vertical-align: middle;
}
}
}
}
}
}
当我使用UglifyJS时,它会混淆来自materialize库的类的顺序 .
如果我编译scss文件并且需要css文件它可以正常工作,但是如果我在 _colors.scss
文件中更改某些内容,我将需要自己编译scss文件,因为webpack不知道要查找它 .
谁能帮我?谢谢!