当前位置: 首页 > news >正文

webpack-性能优化

构建速度

优化babel-loader

采取缓存
在这里插入图片描述

IgnorePlugin(避免打包无用代码)

ignorePlugin无法自动识别哪些真的只有到了
需要用户收到排除 然后手动引入
还是需要一些经验使用的
在这里插入图片描述
在这里插入图片描述

noParse(避免重复打包)

已打包过的代码无需重新打包
在这里插入图片描述

happyPack(多进程打包)

在这里插入图片描述
在这里插入图片描述

ParallelUglifyPlugin(多进程压缩js)

  • webpack内置uglify压缩js
  • 开启多进程压缩js 跟happypack同理
  • 在这里插入图片描述

自动刷新【不可用于生产】

注意 开启webpack-dev-server 会自动开启热更新
并且网页全部刷新 会丢失内存和状态
在这里插入图片描述

热更新【不可用于生产】

新代码生效 网页不刷新 内存不丢失
需要自己配置 如何热更新
在这里插入图片描述
在这里插入图片描述

DllPlugin(动态链接库插件)【不可用于生产】

  • 前端框架如 vue React 体积大 构建慢
  • 较稳定,不常升级版本
  • 同版本仅构件一次
  • webpack内置

包含两个文件

  • DllPlugin:打包出dll文件
  • DllReferencePlugin:使用dll文件
    生成Dll
    在这里插入图片描述
    在这里插入图片描述
    然后再开发环境中引入dll文件
    在这里插入图片描述
    配置地址
    在这里插入图片描述
    并且还要忽略掉nodem中代码(好麻烦好费力)
    在这里插入图片描述

产出代码

小图片base64编码

在这里插入图片描述

bundle加哈希

在这里插入图片描述

懒加载

比较大的文件 直接异步加载进来(代码、组件、路由)

  • 提取公共代码
    在这里插入图片描述

IngorePlugin

只引用用的部分

使用CDN加速

会修改所有的url前缀
在这里插入图片描述
在这里插入图片描述

后面打包出来的文件会变成如下前缀
在这里插入图片描述

使用production(mode:XXXX)

  • 自动开启代码压缩
  • Vue React 会自动删掉调试代码(如开发环境的warning)
  • 启动 Tree-Shaking (必须用ES6 Module 才生效)
    仅仅把用到的 打包 没有使用的无用变量会自动筛选掉

ScopeHostiong

避免多个文件打包后 多个函数生成多个作用域
可以将多个函数合并为一个函数
在这里插入图片描述

http://www.dtcms.com/a/305459.html

相关文章:

  • 告别内存泄漏:你的Rust语言30天征服计划
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | 3dBackgroundBoxes(3D背景盒子组件)
  • Prometheus-2--什么是Exporter是什么?
  • STM32F1 Flash的操作
  • 【学习过程记录】【czsc】1、安装
  • 【Qt开发】信号与槽(三)-> 自定义信号和槽
  • QT---》文件MD5码的获取与验证
  • 关于vue __VUE_HMR_RUNTIME__ is not defined报错处理
  • Baumer工业相机堡盟工业相机如何通过YoloV8的深度学习模型实现汽车牌照的位置识别(C#代码,UI界面版)
  • Web前端实战:Vue工程化+ElementPlus
  • 前端兼容性问题全面解决方案
  • 重生之我在暑假学习微服务第五天《Docker部署项目篇》
  • JavaWeb 进阶:Vue.js 与 Spring Boot 全栈开发实战(Java 开发者视角)
  • Linux常用基础命令
  • 【MySQL基础01】:如何创建删除修改表和数据库
  • 【大语言模型入门】—— Transformer 如何工作:Transformer 架构的详细探索
  • [mcp: JSON-RPC 2.0 规范]
  • sqLite 数据库 (2):如何复制一张表,事务,聚合函数,分组加过滤,列约束,多表查询,视图,触发器与日志管理,创建索引
  • Python的魔术方法
  • 在 Cloudflare 平台上完整部署 GitHub 项目 MoonTV 实现免费追剧流程
  • 计算机网络基础(一) --- (网络通信三要素)
  • Deep Learning_ Foundations and Concepts-Springer (2024)【拜读】20章3节
  • Linux C:构造数据类型
  • python基础:request请求Cookie保持登录状态
  • Python高效历史记录管理:保存最后N个元素的完整指南
  • 机械学习--线性回归
  • 项目如何进行阶段性评估?核心要点
  • Java07--面向对象
  • 【收银系统开发】收银系统之数字键盘,人机交互中重复判断——仙盟创梦IDE
  • thingsboard 自定义动作JS编程