通过 postcss-loader 和 autoprefixer 两款插件实现
1、安装两款插件
npm i postcss-loader autoprefixer -D
2、在webpack.prod.js中加入以下配置
{
test: /.less$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'less-loader',
{
loader: 'postcss-loader',
options: {
plugins: () => [
require('autoprefixer') ({
overrideBrowserslist: ['last 2 version', '>1%', 'ios 7']
})
]
}
}
]
},
postcss-loader 执行顺序必须保证在 css-loader 之前,建议还是放在 less或者 sass 等预处理器之后更好。即 loader 顺序:
less-loader -> postcss-loader -> css-loader -> style-loader 或者 MiniCssExtractPlugin.loader。其实 postcss-loader 放在 less-loader 之前问题也不大,平时使用的 less 里面的语法基本不会和 autoprefixer 处理产生冲突的。
其中css-loader和less-loader分别是转化css和less所用,主要区别在于以下部分:
{
loader: 'postcss-loader',
options: {
plugins: () => [
require('autoprefixer') ({
overrideBrowserslist: ['last 2 version', '>1%', 'ios 7']
})
]
}
}
last 2 version为兼容浏览器最后两个版本。
以下是经过插件处理后的样式,display: flex被自动加上多个前缀
.search-text{font-size:20px;color:red;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}