css兼容性处理,我们需要两个包
postcss-loader
postcss-preset-env
配置 webpack.config.js
相关配置项可前往 webpack 官网查看, webpack4 于 webpack5 有差别
https://webpack.js.org/loaders/postcss-loader/#root
const MiniCssExtractPlugin = require('mini-css-extract-plugin')module.exports = {module: {rules: [{test: /\.css$/,use: [MiniCssExtractPlugin.loader,'css-loader',{loader: "postcss-loader",options: {postcssOptions: {plugins: [["postcss-preset-env"]]}}}]}]},plugins: [new MiniCssExtractPlugin({filename: 'css/built.css'})],}
Autoprefixer 插件
比如有时候我们的部分浏览器不支持css3的display: flex 属性,那么我们就需要在此属性前添加对应的前缀来兼容。这个时候我们就可以使用Autoprefixer 插件配合postcss来完成。
安装Autoprefixer 插件
npm install autoprefixer -D
创建 postcss.config.js 文件
// postcss.config.js
module.exports = {
plugins: [
require('autoprefixer')
]
}
同时在webpack.config.js 配置相关loader
// webpack.config.js
module.exports = {
module: {
rules:[
{
test: /\.css$/,
exclude: /node_modules/,
use: ['style-loader', 'css-loader', 'postcss-loader']
}
]
}
}
我们还需要在 package.json 约定浏览器版本
// package.json
{
"browserslist": [
"> 1%", // 支持的浏览器为全球使用率在1%以上的浏览器
"last 2 version" // 浏览器版本为最新的2个版本
]
}
最终效果显示
