前端之webpck的优化

2023-09-13 16:58:59

一、webpack的打包流程/webpack的机制/原理/webpack是怎么打包的

1 webpack是根据运行的指令来决定一个基本的业务流程
2 如果是build 就是执行打包,如果是 配合了devServer就是就行本地化的调试。 两者其实在本质上没有太大区别,只是devServer会运行一个node服务器来进行本地化调试,打包的文件只是临时的缓存。
3 确定入口:在配置文件当中我们会指定一个入口文件(entry)
4 编译模块: 根据入口文件,遍历他所有的引入的文件。然后根据不同的文件类型使用不同的loader或者是对应的插件进行处理,而且在文件当中的其他引入会依次递归寻找。重复同样的流程。
5 完成编译:loader和插件对于我们的各种的引入模块进行编译处理最终形成一个有效的文件依赖。
6 输出资源: 根据入口和各模块之间的依赖关系, 组装成一个个包含多个模块的chunk,再把每个chunk转换成一个单独的文件加入到输出列表。
7 文件生成: 最终我们会把这些确定好到要打包的文件 写入到我们的文件系统当中。

二、cdn优化

原先我们使用一个包的方式都是 npm i 安装包。然后 import 到代码里面使用。 这样做会导致对应的包也会被打包到我们的js当中。 会增加了我们的打包的压力和大小。所以对于一些体积较大 但是比较稳定的包,我们应该直接使用cdn加速服务来处理(意思就是我们在上线的时候 通过html代码引入这个 js包使用即可,而不是打包到我们的js当中。) 所以这些成熟的而且提交较大的类库我们其实可以放到cdn服务器上面,所以我们配置webpack区忽略这些包的打包。

webpack排除打包

{
  ...其他配置,
  externals:{
    'vue':'Vue',
    'element-ui':'ELEMENT',
    'xlsx':'XLSX'

}

cdn服务器上的地址注入到模板当中
在这里插入图片描述

三、使用 module.noParse

假设我们不采用cdn引入一些公共的类库比如说 ecahrt或者是 jquery等等这些,但是我们又在我们的代码里面进行了引入,默认情况下webpack还是会对这些引入的库进行解析处理。这些包的其实都是很稳定而且比较庞大的包,webpack去解析这些文件耗时又没有实际的意义,因为我们基本不会改动里面的内容。

所以我们可以主动的去配置 告诉webpack哪些文件不需要去解析

 module: {
    noParse: /^(vue|vue-router|vuex|vuex-router-sync)$/
  }
更多推荐

IT隔离电源系统在医院电气设计中的应用

【摘要】许多国际标准都对医疗领域,尤其是那些生命攸关的场所,如手术室、重症监护室、心脏监护室等的配电系统作了特殊的规定。现在国际上针对医疗领域中的手术室、ICU、CCU等重要场所通常采用局部“中性点不接地的供电系统”(IEC标准称之为“医疗IT系统”或“隔离电源系统”)供电。文章阐述了IT系统设置的必要性,国内外规范的

机器学习实战:Python基于GBM梯度提升机进行预测(十四)

这篇干货很硬,喜欢的小伙伴点个赞/收藏,持续更新!文章目录1.前言1.1GBM的介绍1.2GBM的应用2.scikit-learn实战演示2.1分类问题2.2回归问题3.GBM超参数3.1决策树数量(n_estimators)3.2样本数量(subsample)3.3特征数量(max_features)3.4学习率(l

lv5 嵌入式开发-3 守护进程

目录1守护进程的概念1.1相关概念1.2举例1.3函数介绍2守护进程的实现2.1简单创建2.2守护进程创建2.3实例掌握:守护进程特点、会话、控制终端、创建守护进程1守护进程的概念守护进程又叫精灵进程(DaemonProcess),它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的

zabbix(一)

为什么需要监控?保证业务7*24小时,稳定运行小厂要求满足:99.9%大厂要求满足99.99%提前做监控,只要有问题立马报警,报警需要时间有时候出的故障,故障处理需要时间高可用性99.99%这个很难linux系统oomOutofmemorylinux内核杀掉程序进程,释放内存网速快,网页秒开网速慢,网页超时1M/s10

通讯网关软件008——利用CommGate X2Mysql实现OPC数据转储Mysql

本文介绍利用CommGateX2MYSQL实现从OPCServer读取数据并转储至MYSQL数据库。CommGateX2MYSQL是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。【案例】如下图所示,实现从OPCServer读取数据并转储至MYSQL数据库。【

企业诊断屋:二手车交易平台 APP 如何用 AB 测试赋能业务

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群2023年汽车行业新车市场低靡,由新车降价引发的车辆价格波动很快传导到二手车市场,二手车的交易也受到了冲击,收车验车更加谨慎,诸多二手交易平台想要保障平台的交易率也变得竞争激烈。二手车交易平台需要吸引各方平台上交易,既要有卖家又要有买家

车辆OBD数据采集

OBD接口作为车载监控系统的通讯接口,除了读取故障码以供修车外,其首要功能就是可提供车辆的各种工况数据,如燃油压力、发动机空气流量和车速等。OBD接口可快速方便地监测公司车辆和竞争车辆的多个系统和部件,包括发动机、催化转化器、颗粒捕集器、氧传感器、4a4949排放控制系统、燃油系统和GER等,从而可直接获取多项车辆基本

搭建本地人工智能框架LocalAI

什么是LocalAILocalAI是一个用于本地推理的,与OpenAIAPI规范兼容的RESTAPI。它允许您在本地使用消费级硬件运行LLM(不仅如此),支持与ggml格式兼容的多个模型系列。不需要GPU。最吸引老苏的有两点,一个是不需要GPU,另一点上可以使用消费级硬件,所以准备搭一个试试,至于后续用来干什么,到时候

数据库设计三大范式

目录什么是范式1.第一范式(1NF)2.第二范式(2NF)3.第三范式(3NF)数据库三大范式包含:1、第一范式(1NF);2、第二范式(2NF);3、第三范式(3NF)。其中,第一范式(1NF)的要求是属性不可分割,,第二范式(2NF)的要求是满足第一范式,且不存在部分依赖;第三范式(3NF)的要求是满足第二范式,且

基于Elasticsearch的多文档检索 比如 商品(goods)、案例(cases)

概述Elasticsearch多文档聚合检索详细记得把这几点描述好咯:需求(要做什么)+代码实现过程+项目文件结构截图+演示效果应用场景我们需要在五种不同的文档中检索数据。比如商品(goods)、案例(cases)、日记(diaries)、帖子(posts)、商家(shops)。我们现在需要用关键字做全文检索,但是命中

Vue的单文件组件(Single File Components):优势与实例

Vue的单文件组件(SingleFileComponents):优势与实例Vue.js是一款流行的前端JavaScript框架,它采用了一种特殊的组件化开发方式,被称为单文件组件(SingleFileComponents,简称SFC)。这种开发方式将组件的模板、逻辑和样式封装到一个独立的文件中,让前端开发更加模块化和可

热文推荐