vue-cli项目打包体积太大,服务器网速也拉胯(100kb/s),客户打开网站需要等十几秒!!! 尝试cdn优化方案

news2024/11/16 19:38:10

一、首先用插件webpack-bundle-analyzer查看自己各个包的体积

插件用法参考之前博客

vue-cli项目中,使用webpack-bundle-analyzer进行模块分析,查看各个模块的体积,方便后期代码优化

二、发现有几个插件体积较大,有改成CDN引用的必要,先优化2个试试水

比如 echarts、element-ui、element-variables.scss、lay-excel、moment

 

第一次 npm run build 的体积是 4.29MB

 尝试优化,分为这几步

1.在vue.config.js中webpack的externals忽略打包
    externals: {
      vue: 'Vue',
      'element-ui': 'Element'
    },
2.在 module.exports - configureWebpack 里面写

3.index.html里引入vue和element的cdn资源, index.html路径为public/index.html
    <link href="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.3/theme-chalk/index.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/vue/2.6.1/vue.js"></script>
    <script src="https://cdn.bootcss.com/element-ui/2.15.12/index.js"></script>

4.注释main.js的引用

很好,成功了,但没完全成功,有坑!!

坑1:vue.config.js 的externals配置, 饿了么取名一定要是Element :    'element-ui': 'Element'

如果是ElementUI会报错:Uncaught ReferenceError: ElementUI is not defined

坑2:CDN引入vue一定要在element-ui前面

坑3:element-ui的css 明明改成引用cdn ,element-variables怎么还那么大

排查了下 本地引用没有注释干净

@import "~element-ui/packages/theme-chalk/src/index";     这句要注释

5.再次 npm run dev 看, 很好 element-variables占用没了 体积也小了。

此时打包体积为 2.93

有点意思~

三、通过以上操作了解到CDN优化的流程,接下里搞定剩下的大体积插件

基本只要修改3个地方

1.vue.config.js 配置不打包的插件

2.index.html 引入CDN资源

3.main.js 注释本地引用

    externals: {
      vue: 'Vue',
      'element-ui': 'Element',
      echarts: 'echarts',
      moment: 'moment'
    },
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="icon" href="<%= BASE_URL %>logo.png">
    <link href="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.3/theme-chalk/index.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/vue/2.6.1/vue.js"></script>
    <script src="https://cdn.bootcss.com/element-ui/2.15.12/index.js"></script>
    <script src="https://cdn.bootcss.com/echarts/3.7.0/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/moment.js/2.29.4/moment.min.js"></script>
    <title><%= webpackConfig.name %></title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

1.echarts注释这句

// import * as echarts from 'echarts'

2.需要注意点是 moment只需要注释 // import moment from 'moment'

因为项目中大量使用  this.$moment  ,示例:this.$moment(new Date()).format('YYYY-MM-DD HH:mm:ss'),   还是要把 moment 赋值到this上

3.如果因为eslint提示  'echarts' is not defined

在上面加 // eslint-disable-next-line no-undef

4.此时打包体积 1.63MB,比开始的4.29MB少了三分之二

体积小那网站加载速度还不是飙升

完工~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1047664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决github 2FA验证

安装谷歌浏览器插件 身份验证器 https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai 安装后点击这里后&#xff0c;选中github网页提供的二维码&#xff0c;插件会生成一个code&#xff0c;粘贴到github网页需要输入code的地方 验证…

Visual Studio 删除行尾空格

1.CtrlH 打开替换窗口&#xff08;注意选择合适的查找范围&#xff09; VS2010: VS2017、VS2022: 2.复制下面正则表达式到上面的选择窗口(注意前面有一个空格)&#xff1a; VS2010: $ VS2017、VS2022: $ 3.下面的替换窗口不写入 VS2010: VS2017、VS2022: 4.点选“正则表达式…

UE4蓝图

1、绑定蓝图到对象并打印对象名称 2、变量数值 3、变量字符串 4、侧边栏 5、分支判断 6、倒计时停止 7、每隔一秒执行一次 8、倒计时按条件执行 9、多按键阻断、重置 10、门的状态&#xff1a;开、关、开关 11、一个键盘事件完成多个事件 12、随机抽奖 13、分:秒计时器&#x…

opentelemetry、grafana、Prometheus、jaeger、victoria-metrics 介绍、关系与使用

Opentelemetry OTEL 是 OpenTelemetry 的简称&#xff0c; 是 CNCF 的一个可观测性项目&#xff0c;旨在提供可观测性领域的标准化方案&#xff0c;解决观测数据的数据模型、采集、处理、导出等的标准化问题&#xff0c;提供与三方 vendor 无关的服务。 OpenTelemetry 是一组标…

一致性思维链(SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS)

概要 思维链已经在很多任务上取得了非常显著的效果&#xff0c;这篇论文中提出了一种 self-consistency 的算法&#xff0c;来代替 贪婪解码 算法。本方法通过 采样多个思维链集合&#xff0c;然后LLM模型生成后&#xff0c;选择一个最一致的答案作为最后的结果。一致性思维链…

第二十届北京消防展即将开启,汉威科技即将精彩亮相

10月10日~13日&#xff0c;第二十届中国国际消防设备技术交流展览会&#xff0c;将在北京市顺义区中国国际展览中心新馆隆重举行。该展会由中国消防协会举办&#xff0c;是世界三大消防品牌展会之一&#xff0c;本届主题为“助力产业发展&#xff0c;服务消防救援”。届时将有4…

控价维权的意义是什么

品牌为什么要做控价&#xff0c;其目的又是什么&#xff0c;控价是品牌管控渠道的一种方式&#xff0c;通过控价&#xff0c;品牌可以达到管控渠道价格的目标&#xff0c;同时在管控的过程中&#xff0c;可以及时发现渠道中的低价、假货、窜货链接&#xff0c;并及时将这些链接…

山海鲸数字孪生金融解决方案:开创智能金融新时代

在金融行业的数字化浪潮中&#xff0c;数字孪生技术正以惊人的速度崭露头角。这项技术不仅改变了金融机构的运营方式&#xff0c;还为金融从业者提供了更多机会来提高效率、降低风险以及提供更加个性化的服务。为了解决这一需求&#xff0c;山海鲸可视化退出一系列智慧金融解决…

MySQL面试题-索引的基本原理及相关面试题

先了解一下MySQL的结构 下面我们重点讲一下存储引擎 MySQL的数据库和存储数据的目录是一一对应的&#xff0c;这些数据库的文件就保存在磁盘中对应的目录里 下面我们来看一下对应的具体数据文件 .frm是表的结构&#xff0c;不管什么样的索引都会有 .ibd代表我们现在使用的存…

智慧灯杆网关管理平台:城市建设的智慧化之道

随着城市化进程不断推进,城市公共服务和管理的数字化、智能化已经成为必然趋势。而要实现从“灯杆”到“智慧灯杆”的转变,构建新一代城市基础设施,就需要以智慧灯杆管理平台为核心的解决方案。 星创易联自主研发的智慧灯杆管理云平台,是新型城市物联网建设的关键环节。它以LE…

【RocketMQ】【源码】DLedger选主源码分析

RocketMQ 4.5版本之前&#xff0c;可以采用主从架构进行集群部署&#xff0c;但是如果master节点挂掉&#xff0c;不能自动在集群中选举出新的Master节点&#xff0c;需要人工介入&#xff0c;在4.5版本之后提供了DLedger模式&#xff0c;使用Raft算法&#xff0c;如果Master节…

SpringSecurity的认证流程源码深入刨析

环境 SpringBoot版本&#xff1a;2.7.14 流程图 默认的Filter SpringSecurity的默认Filter地址&#xff1a;http://t.csdn.cn/YH838 常见的认证授权技术 1、基于表单的认证&#xff08;Cookie & Session&#xff09; 基于表单的认证并不是在 HTTP 协议中定义的&#x…

互联网社交礼仪:我到底该怎么笑才对

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 小黑 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 一切要从不知情的阿福发微笑脸说起。 微笑、呲牙笑、流汗笑&#xff0c;到底哪个才是真正的笑&#xff1…

C++入门篇10---stack+queue+priority_queue

前言 本文主要是介绍C库中的栈、队列和优先级队列(其实就是堆)的一些接口以及如何用C来实现它们&#xff0c;对这三种数据结构就不多介绍了&#xff0c;如有不了解的同学&#xff0c;请查阅我之前写的两篇博客 栈和队列的实现二叉树和堆详解 下面正片开始 一、stack 1.了解s…

企业知识库构建:关于企业知识库及知识平台搭建的重要性!

随着企业规模的不断发展与壮大&#xff0c;在企业运营相关知识信息将不断产生&#xff0c;而知识处理中&#xff0c;建立知识库会面临着信息零散碎片化、信息关系复杂难梳理、信息不完整、碎片数据难以沉淀存储等问题…… 所以作为企业管理者&#xff0c;首先需要意识到关于企业…

SPA项目之主页面--数据表格的增删改查

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于VueElementUI的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.增删改查 1.样式准备 2.编码 …

聚合统一,SpringBoot实现全局响应和全局异常处理

目录 前言 全局响应 数据规范 状态码(错误码) 全局响应类 使用 优化 全局异常处理 为什么需要全局异常处理 业务异常类 全局捕获 使用 优化 总结 前言 在悦享校园1.0版本中的数据返回采用了以Map对象返回的方式&#xff0c;虽然较为便捷但也带来一些问题。一是在…

机器人制作开源方案 | 货物输送小车

作者&#xff1a;周展鹏 黄万森 彭军铭 吕会权 聂文俊 单位&#xff1a;柳州工学院 指导老师&#xff1a;蔡洪炜 王一波 1. 场景调研 目前货物输送已成为人们生活中必不可少的部分&#xff0c;加之国内近年来有因快递配送导致疫情迅速传播的事件常有发生&#xff0c;因此在疫…

Mybatis3详解 之 全局配置文件详解

1、全局配置文件 前面我们看到的Mybatis全局文件并没有全部列举出来&#xff0c;所以这一章我们来详细的介绍一遍&#xff0c;Mybatis的全局配置文件并不是很复杂&#xff0c;它的所有元素和代码如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8&…

精通Linux系列第二章:虚拟机安装Linux系统环境教程

文章目录 一、前言二、VMware Fusion安装教程2.1 说说安装虚拟机的好处2.2 安装VMware Fusion 三、环境搭建3.1 各种Linux发行版介绍与iso下载链接3.2 VMware Fusion安装Linux3.2.1 Ubuntu桌面版安装3.2.2 Debian桌面版安装3.2.3 Fedora桌面版安装3.2.4 CentOS桌面版安装3.2.5 …