
Webpack5 教程Css 兼容性处理
编译工具 / 发布于 3个月前 / 更新于 / 本文字数: 3.93k 字 /教程集数: 13
标签: webpack5 教程 / webpack5 css兼容 / webpack5 css处理
Css 兼容性处理
由于浏览器存在css3的兼容性,需要在不同的浏览器加前缀,使其兼容可用。
依赖包
npm i postcss-loader postcss postcss-preset-env -D
配置 webpack.prod.js
在加载器的 "css-loader",
下方增加
{
loader: "postcss-loader",
options: {
postcssOptions: {
plugins: [
"postcss-preset-env", // 能解决大多数样式兼容性问题
],
},
},
},
全部
定义兼容性控制
修改package.json
文件中添加 browserslist 来控制样式的兼容性做到什么程度
{
// 其他省略
"browserslist": ["last 2 version", "> 1%", "not dead"]
}
改进配置文件
const path = require("path");
const ESLintPlugin = require('eslint-webpack-plugin');
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const getStyleLoaders = (preProcessor) => {
return [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "postcss-loader",
options: {
postcssOptions: {
plugins: [
"postcss-preset-env", // 能解决大多数样式兼容性问题
],
},
},
},
preProcessor,
].filter(Boolean);
};
module.exports = {
//入口
entry: "./src/main.js",
//输出
output: {
//输出路径
//__dirname nodejs的变量,代表当前文件所在的文件夹目录
path: path.resolve(__dirname, "../dist"), //绝对路径
//入口文件输出文件名
filename: "static/js/index.js",
clean: true, //自动清空上次打包的内容,原理,将path目录清空,再进行打包
},
//加载器
module: {
rules: [
//loader配置
{
test: /\.css$/i,
use: getStyleLoaders(),
},
{
test: /\.less$/i,
//loader:'xx' 只能使用1个loader
use: getStyleLoaders('less-loader'),
},
{
test: /\.s[ac]ss$/i,
use: getStyleLoaders('sass-loader'),
},
{
test: /\.styl$/,
loader: "stylus-loader", // 将 Stylus 文件编译为 CSS
},
{
test: /\.(png|jp?g|gif|webp|svg)$/,
type: "asset",
parser: {
dataUrlCondition: {
//小于10kb的图片转base64
//有点,减少请求数量,缺点,体积会变大
maxSize: 10 * 1024
}
},
generator: {
//hash:10 表示取hash前10位
filename: 'static/img/[hash:10][ext][query]'
}
},
//图标设置
{
test: /\.(ttf|woff2?)$/,
type: "asset/resource",
generator: {
//hash:10 表示取hash前10位
filename: 'static/font/[hash:10][ext][query]'
}
},
//视频文件
{
test: /\.(mp3|avi|mp4)$/,
type: "asset/resource",
generator: {
//hash:10 表示取hash前10位
filename: 'static/video/[hash:10][ext][query]'
}
},
//处理转换es6
{
test: /\.js$/,
exclude: /node_modules/, // 排除node_modules代码不编译
loader: "babel-loader",
},
]
},
//插件
plugins: [
//
new ESLintPlugin({
//检查目录下的文件
context: path.resolve(__dirname, "../src")
}),
new HtmlWebpackPlugin({
// 以 public/index.html 为模板创建文件
// 新的html文件有两个特点:1. 内容和源文件一致 2. 自动引入打包生成的js等资源
template: path.resolve(__dirname, "../public/index.html"),
}),
// 提取css成单独文件
new MiniCssExtractPlugin({
// 定义输出文件名和目录
filename: "static/css/main.css",
}),
],
//模式
mode: "production"
}
打包
npm run build
版权提示
1.除了标识原创之外,其他可能来源于网友的分享,仅供学习使用2.如您发现侵犯了您的权利,请联系我们删除
3.转载必须带本文链接,否则你将侵权
4.关于会员或其发布的相关内容均由会员自行提供,会员依法应对其提供的任何信息承担全部责任,本站不对此承担任何法律责任
0 人点赞
评论区 (0)
最新视频教程
-
-
黑白课堂
- Laravel6 全套入门实战
- 4651 2
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4572 5
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4457 0
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4077 0
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4079 0
-
最新视频课程
-
Laravel 消息通知使用
黑白课堂
285517 03年前
-
ace.js 打造一款属于你的 Web 编辑器,入门文档。
黑白课堂
15294 04年前
-
Laravel 实现 RBAC 权限管理功能 Permission 包操作
黑白课堂
14136 05年前
-
微信小程序等比例图片压缩上传,100%可用,非官方压缩方法
黑白课堂
12180 14年前
-
宝塔面板强制绑定账号修改为不强制绑定方案
黑白课堂
11366 03年前
-
wap2App 入门讲解,100%速成,全面为你讲解。
黑白课堂
9211 04年前
-
Laravel 设置请求头 header 参数
黑白课堂
8328 03年前
-
Laravel 的 PhpSpreadsheet 包入门
黑白课堂
8325 04年前
-
Laravel 表格操作 Maatwebsite/Laravel-Excel 3.1 最新版本的操作指南
黑白课堂
8297 04年前
-
Linux 下如何监听我们的脚本是否掉线了
黑白课堂
7564 03年前
-
KongQi Laravel Admin2.0 文档安装
黑白课堂
3914 23年前
-
KongQi Laravel admin2.0 layui admin 版本序言
黑白课堂
3342 03年前
-
易语言入门拖入文件导入到超级列表框表格内
哪吒
8405 13年前
-
易语言入门易语言定时任务模块
哪吒
6491 03年前
-
postman 使用手册cookie 使用
哪吒
4975 03年前
-
谷歌浏览器插件教程proxy 代理
哪吒
4534 01年前
-
易语言入门判断文件夹是否存在的方法
哪吒
4255 02年前
-
易语言入门TAB 标签页制作
哪吒
4204 03年前
-
Visual Studio Code 入门和使用教程插件安装使用
哪吒
4135 13年前
-
Visual Studio Code 入门和使用教程安装下载
哪吒
4105 03年前
