首先我使用了一个normalize.less,然后在每一个组件的Less文件里面@import这个normalize文件。如下:
Normalize:
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
Header 组件:
@import './normalize.less';
.fg-header {
background-color: @fg-black;
height: 88px;
width: 100%;
}
Footer组件:
@import './normalize.less'
.fg-footer {
background: @fg-black;
color: @fg-white;
display: block;
height: 140px;
text-align: center;
}
然后使用less编译后打包成一个style.css文件,但是这个style.css文件里面,配置文件如下:
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var ExtractLess = new ExtractTextPlugin('./style/style.css');
module.exports = {
entry: {
base: path.resolve(__dirname,'./dev/app.js'),
vendors: ['react']
},
...
module: [
{
test: /\.less$/,
loader: ExtractTextPlugin.extract("style-loader", "css-loader!less-loader")
},
]
plugins: [
ExtractLess
]
}
但是打包成功后style.css里面出现重复的normalize代码:
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
.fg-header {
background-color: @fg-black;
height: 88px;
width: 100%;
}
.fg-footer {
background: @fg-black;
color: @fg-white;
display: block;
height: 140px;
text-align: center;
}
这怎么配置能够解决?
问题已过时。目前 webpack 版本不会出现这样会的问题。其他 CSS 优化去重问题可以参考 css purify 或 css optimze