【前端学习记录】webpack学习之mini-css-extract-plugin插件

【Unity URP渲染管线下Shader的自定义物体半透明和投影半透明效果_半透明案例分享】 Unity Shader Graph URP渲染管线下的自定义半透明效果_半透明案例分享 阅读详情

前言

最近在学习尚硅谷的webpack5课程,看到mini-css-extract-plugin这个插件的时候,感觉很有帮助,之前都没有在css这方面深入思考过,课程中的一些记录写在下面

为什么需要优化CSS

Css 文件目前被打包到 js 文件中,当 js 文件加载时,会创建一个 style 标签来生成样式(先去加载js文件,再去创建style 标签来生成样式)

这样对于网站来说,会出现闪屏现象,用户体验不好(控制台newwork调慢时可以看到一个白屏,当js解析完成后,才会看到页面)

如何解决

我们应该是单独的 Css 文件,通过 link 标签加载性能才好。因此我们要将CSS给提取出来,以此来优化性能。

在webpack5中有一个插件可以解决这个问题,即mini-css-extract-plugin

MiniCssExtractPlugin

本插件会将 CSS 提取到单独的文件中,为每个包含 CSS 的 JS 文件创建一个 CSS 文件,并且支持 CSS 和 SourceMaps 的按需加载。

本插件基于 webpack v5 的新特性构建,并且需要 webpack 5 才能正常工作。

与 extract-text-webpack-plugin 相比:

  • 异步加载
  • 没有重复的编译(性能)
  • 更容易使用
  • 特别针对 CSS 开发

使用方法

1. 安装
npm install --save-dev mini-css-extract-plugin
2. 使用
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
  ...
  module: {
    rules: [
      {
        // 用来匹配 .css 结尾的文件
        test: /\.css$/,
        // use 数组里面 Loader 执行顺序是从右到左
        use: [MiniCssExtractPlugin.loader, "css-loader"],
      },
      {
        test: /\.less$/,
        use: [MiniCssExtractPlugin.loader, "css-loader", "less-loader"],
      },
      {
        test: /\.s[ac]ss$/,
        use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],
      },
      {
        test: /\.styl$/,
        use: [MiniCssExtractPlugin.loader, "css-loader", "stylus-loader"],
      },
  },
  plugins: [
    new ESLintWebpackPlugin({
      // 指定检查文件的根目录
      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 

执行命令后打包文件夹下会生成一个css文件。再次刷新页面,发现无闪屏现象。

注意
  1. 使用时将 style-loader 替换成 MiniCssExtractPlugin.loader(style-loader会创建style标签,没有必要)
  2. 插件和loader都要进行替换才行
12306自动抢票系统:基于DrissionPage的智能购票实战 摘要:本文介绍了一个基于DrissionPage的12306自动抢票系统实现方案。该系统通过模拟真实用户操作,实现了车票查询、登录认证、座位选择和订单提交的全流程自动化。项目采用DrissionPage库替代传统Selenium方案,具有更简洁的API设计和更好的性能表现。核心技术包括数据包监听、动作链模拟和反爬虫应对策略,实现了高效可靠的车票抢购功能。系统包含完整的业务流程设计,从环境初始化到最终订单提交,并提供了清晰的数据展示界面。本文强调该项目仅用于技术研究,在实际使用中应严格遵守12306平台规则 阅读详情

相关推荐

实战指南:基于Windows Server构建企业级AAA认证体系

本文详细介绍了如何在Windows Server环境下构建企业级AAA认证体系,涵盖AD域服务部署、NPS服务器配置及华为设备对接实战。通过整合Radius协议与AD域账号管理,实现网络设备的统一认证与权限控制,提升企业IT安全管理效率。特别适用于需要零成本实现AAA认证的中大型企业。

weixin_28304023的博客 422

mini-css-extract-plugin插件快速入门

前言 webpack 4.0以前,我们通过extract-text-webpack-plugin插件,把css样式从js文件中提取到单独的css文件中。extract-text-webpack-plugin插件的优缺点: 更多介绍请看移步:webpack.docschina.org/plugins/ext… webpack 4.0以后,官方推荐使用mini-css-extract-plugin插件来打包css文件(从css文件中提取css代码到单独的文件中,对css代码进行代码压缩等)。 使.

aa_mmnn的博客 1万+

Linux CentOS7文件系统(/dev/var)的容量扩充

原因是之前安装docker后,再想安装Nessus,系统说home、var文件系统的内存都不够。

JHoanna的博客 3226

webpack不同环境下使用CSS分离插件mini-css-extract-plugin

不同环境下的打包,如果出现图片显示不了时(特别是css中的图片),请检查publicPath的配置。会开启tree-shaking和js代码压缩,但配置会使默认的压缩功能失效。所以,指定css压缩插件的同时,务必指定js的压缩插件。插件,结合配置,可以把css代码打包到单独的css文件,且可以设置存放路径(通过设置插件的filename和生产环境下不能使用devtool:"inline-source-map",而用devtool:"source-map"

黎小小的博客 3535

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

段子手168的博客 1万+

C# : 计算并输出这一天是这一年的第几天

C#之输入某年,然后输入某月,再输入某日,计算并输出这一天是这一年的第几天的功能算法

saitoDeng的博客 970

【亲测免费】 动态提取CSS利器:mini-css-extract-plugin

在前端开发中,管理和优化CSS资源的加载是提升用户体验的关键步骤。如果你正在使用Webpack 5构建项目,那么【mini-css-extract-plugin】值得你关注。这个小巧而强大的插件能够将你的CSS代码从JavaScript文件中分离出来,形成单独的样式文件,支持异步加载,并且提供了丰富的配置选项。 ## 项目简介 **mini-css-extract-plugin** 是一个专为...

gitblog_00041的博客 1657

Python爬虫实战:5分钟搞定微信公众号文章阅读数、点赞数抓取(附完整代码)

本文详细介绍了如何通过Python爬虫技术自动化抓取微信公众号文章的阅读数和点赞数。文章从数据源分析入手,分步讲解了获取文章列表与提取单篇统计数据的完整流程,并提供了应对平台风控的策略与工程化整合方案,帮助开发者高效、合规地完成数据采集任务。

ansible6ops的博客 1336

webpack插件之mini-css-extract-plugin

今天给大家介绍的webpack插件是mini-css-extract-plugin;

mingo2806的博客 2579

高通平台power_supply 框架下添加第三方充电IC的驱动方法

1.power_supply电源框架介绍: power supply framework在kernel/drivers/power/下。内核抽象出来power supply子系统为驱动提供了统一的框架。 功能包括: 1.抽象PSY设备的共性,向用户空间提供统一的API; 2.为底层PSY驱动的编写,提供简单、统一的方式,同时封装并实现公共逻辑。 power supply class位于d...

Change 1万+

避坑指南:STM32移植CanFestival时那些没人告诉你的细节(含TJA1050硬件适配)

本文深入解析STM32移植CanFestival协议栈时的关键细节与TJA1050硬件适配技巧,涵盖AVR残留代码清理、定时器中断优化及CAN通信稳定性提升方案。特别针对TJA1050在特定波特率下的信号畸变问题提供实战解决方案,帮助开发者规避移植过程中的隐形陷阱,实现工业级稳定通信。

work3的博客 761

【亲测免费】 mini-css-extract-plugin 使用教程

`mini-css-extract-plugin` 是一个基于 webpack v5 的插件,用于将 CSS 从 JavaScript 包中分离出来,生成独立的 CSS 文件。它支持 CSS 和 SourceMaps 的按需加载,适用于生产环境的构建,可以提高 CSS 文件的加载性能。 ## 项目快速启动 ### 安装插件 首先,你需要安装 `mini-css-extract-plugin`...

gitblog_00899的博客 2191

YOLO26-seg分割优化:卷积魔改 | 动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点 | ICCV2023

​​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 217

Extract Text Webpack Plugin终极指南:从CSS提取到现代前端构建的完整实战

**extract-text-webpack-plugin**是Webpack生态系统中一款革命性的插件,它彻底改变了前端构建中样式处理的方式。在Webpack 1到3的时代,这个插件解决了将CSS从JavaScript bundle中分离的关键难题,为性能优化和代码组织提供了专业解决方案。尽管现在已被标记为DEPRECATED并推荐使用mini-css-extract-plugin,但理解它的设

gitblog_00446的博客 721

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Webpack 4.x 使用mini-css-extract-plugin分离scss失败的坑

楼主最近从移动端转前端有段时间了,目前还是在学习和探索前端的阶段,最近一直在给一个新的项目打基础的脚手架,慢慢的学习webpack 的配置。 如题,当配置到分离css文件的时候,网上大面积的还是extract-text-webpack-plugin这个插件,但是这个插件在webpack 4.x已经用不了,各种报错啊,然后就换成了mini-css-extract-plugin这个插件。 按照网上配置写好后,配置如下: 我试了一下,打包css文件,ok没问题,能正常的分离和引用,但是当我来分离scss

rouzi1230的专栏 3612

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

webpack(三) plugin,WebpackDevServer和热更新

plugin plugin是webpack的一个插件机制,扩展webpack现有的功能 它为项目的构建提供了更加广泛的能力 webpack中的plugin,简单的理解就是对于webpack现有功能的扩展,比如打包优化、文件压缩功能。 plugin的范围更大,作用也更强。 插件 HtmlWebpackPlugin 打包完成后,该插件会自动生成一个html5文件,并把生成js模块引入html 1.1 安装 npm install -D html-webpack-plugin 1.2配置文件 //引入 co

x94410891的博客 388

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

webpack踩坑之路之mini-css-extract-plugin

mini-css-extract-plugin 插件 坑挺多 记录一下 版本兼容坑 typescript No module factory available for dependency type: CssDependency 查看个人的 webpack的版本 如果版本在v5以上 需要使用mini-css-extract-plugin 0.8.2版本 0.8.2版本较为稳定。 2.需配合 plugin部分 一起使用 { plugins:[ new MiniCs

qq_45641978的博客 1869

Webpack--Plugins

Plugins(插件)  扩展 webpack 本身的一些功能,它们会运行在各种模块解析完成以后的打包编译阶段,比如对解析后的模块文件进行压缩等  插件是 webpack 的支柱功能。插件目的在于解决 loader 无法实现的其他事。 1.HtmlWebpackPlugin  作用:在打包结束后,⾃动生成⼀个 html ⽂文件,并把打包生成的 js 模块引⼊到该 html 中  安装:npm install --save-dev html-webpack-plugin  使用:1.在webpack.conf

HBF__cg的博客 359

webpack4 分离css

前言:webpack从1.0的版本 飞速的发展到了webpack5。今天我想记录一下webpack4 如何分离css。webpack4之前一直使用是extract-text-webpack-plugin 来分离css和js。在webpack4之后就无法再分离,很多人配置这个,不报错,但也达不到分离css。 官网上面有一句话: :warning: Since webpack v4 the e...

qq_34849240的博客 4579

webpack配置提取css

webpack配置提取css 初次单独配置使用webpack,在js中引入的样式在没有配置之前会被放到头部的style标签之中,于是就想着将其提取放到单个文件之中去,所以网上查找了一下配置方法,即为使用mini-css-extract-plugin插件,在使用的过程之中遇到了一些问题,所以选择记录到此处。 1. 初始配置 webpack.config.js const HtmlWebpackPlugin = require('html-webpack-plugin') const path = re

weixin_45946494的博客 402

【前端】web前端快速构建项目所需的webpack插件

文章目录前言style-loader|css-loaderless-loaderhtml-loaderfile-loaderurl-loaderhtml-webpack-pluginmini-css-extract-pluginwebpack-dev-server 前言 这个笔记用于平时记录积累学习webpack和前端项目中遇到的可快速开发的插件和程序,如有补充,可在下面进行评论,楼主会补充进来。 style-loader|css-loader module.exports={ module:{

分享记录开发中的问题,欢迎一起探讨! 154

webpack使用总结

下面是自己在学习webpack时一些比较迷惑的问题,今天特意花了一天时间去搞清楚这些,后续会接着在文章中补充其他的问题 1,devtool 配置项: js打包后文件被压缩,如果代码中报错很难找到对应的行号,配置source-map可以在打包时建立源码与编译后代码的映射,这样很容易调试编译后的代码,devtool有四个取值,从上到下,打包速度越来越快,但安全性越来越低,如下: // de...

誉行天下 283

前端远古项目现代化改造进程记录--02阶段1

多页面应用,每个文件夹都视为一个文件,所以每个文件夹里都用index.js作为入口文件, 这里的问题同二, 部分代码可以通过修改源文件满足ESModule规则,大部分代码是使用的全局变量,所以同样用webpack-concat-files-plugin直接拼接, CSS可以直接引用,因为会被mini-css-extract-plugin提取到文件夹下. 旧HTML中对公共js等是。使用copy-webpack-plugin插件,这个插件可以直接移动文件到指定位置, 由from和to控制。

qq_36998298的博客 693

抽离css文件

抽离css文件一、抽离css文件 一、抽离css文件 目前,css代码被css-loader转换后,交给的是style-loader进行处理。 style-loader使用的方式是用一段js代码,将样式加入到style元素中。 而实际的开发中,我们往往希望依赖的样式最终形成一个css文件 此时,就需要用到一个库:mini-css-extract-plugin 该库提供了1个plugin和1个loader plugin:负责生成css文件 loader:负责记录要生成的css文件的内容,同时导出开启css-

xun__xing的博客 607

webpack-前端资源加载/打包工具(2)

webpack的相关使用及其插件的应用

愤怒的小火柴人 696

记录一次莫名其妙的webpack4.X无法压缩css

用webpack4.X 做新的项目,旧的一些插件都废弃了,就跟着官网配置新的,大致用到的就这几个 mini-css-extract-plugin ,和 optimize-css-assets-webpack-plugin这两个是用来提取和压缩js文件里的css的。同样的配置,在别的同事机器上就可以正常执行,在我的机器上就只是提取不压缩,也不报错一脸懵逼。。。把依赖重新安装一遍,还是...

weixin_30251829的博客 213
上一篇: 记一次养生课笔记——养生保健:你是哪种体质?
下一篇: 【前端学习记录】关于使用el-table排序时,默认排序多请求一次的问题
Note_creek
博客等级 码龄10年 372粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值