Nextjs 处理 css3 前缀兼容
虽然css3现在浏览器支持率已经很高了, 但有时候需要兼容一些低版本浏览器,需要给css3加前缀,可以借助插件来自动加前缀, postcss-loader就是来给css3加浏览器前缀的,安装依赖:
npm i postcss-loader autoprefixer -D
- postcss-loader:处理css时自动加前缀
- autoprefixer:决定添加哪些浏览器前缀到css中
修改next.config.js, 在解析css和less的规则中添加配置
/** @type {import('next').NextConfig} */
const nextConfig = {
// reactStrictMode: true,
webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
// Important: return the modified config
config.module.rules.push({
test: /.(css|less)$/, //匹配 css和less 文件
use: ["style-loader", "css-loader", "postcss-loader"],
});
return config;
},
};
module.exports = nextConfig;
配置完成后,需要有一份要兼容浏览器的清单,让postcss-loader知道要加哪些浏览器的前缀,在根目录创建 .browserslistrc文件
IE 9 # 兼容IE 9
chrome 35 # 兼容chrome 35
postcss.config.js是postcss-loader的配置文件,会自动读取配置,根目录新建postcss.config.js:
module.exports = {
plugins: ["autoprefixer"],
};
以兼容到ie9和chrome35版本为例,配置好后,执行npm run build:dev打包,可以看到打包后的css文件已经加上了ie和谷歌内核的前缀
提取postcss-loader配置后,再次打包,可以看到依然可以解析css, less文件, css3对应前缀依然存在。
包,可以看到依然可以解析css, less文件, css3对应前缀依然存在。