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

vite-vue3 项目优化首屏加载速度

A嵌入B,B加载速度太慢了,需要4s+,需优化:
B系统技术栈: vue3 + vite
优化结果如下,上下对比还有有差距的:
image

一、先处理: 首屏加载的文件——先优化文件大

step1: 安装可视化插件 rollup-plugin-visualizer;

viteconfig.js

export default defineConfig({base: process.env.PUBLIC_PATH || '/pomp-budget/',plugins: [vue(),visualizer({open: true,gzipSize: true,brotliSize: true,})],resolve: {alias: {'@': fileURLToPath(new URL('src', import.meta.url)),},},server: {proxy: {},},build: {outDir: 'dist',minify: true,chunkSizeWarningLimit: 5000,assetsInlineLimit: 1024 * 1024 * 10,cssCodeSplit: false,sourcemap: process.env.NODE_ENV === 'development' ? true : false,rollupOptions: {plugins: [],output: {// Static resource classification and packagingchunkFileNames: 'assets/js/[name]-[hash].js',entryFileNames: 'assets/js/[name]-[hash].js',assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',},},},
})

step2: 查看报告

npm run build 后会自动打开报告 (即 vite build)
根据报告查看具体那些占用内存大;

目前看出lodash文件较大

step3: 根据报告优化

  1. lodash换成lodash-es, lodash-es支持treeSharking
  2. 存在moment和dayjs两个插件功能重复,选择性使用dayjs

二、再处理: 首屏加载的文件——再优化文件多

可以看出系统在加载时,首屏加载了157个文件,chrome请求线程最多一次性6个加载,如此导致的加载排队,是首屏加载慢的主要原因

step1: 观察build配置发现以前的build完全没考虑打包,按照如下调整:

image

step2: 再执行vite preview,加载文件减少到100个,查看前后对比,相当明显~

image

step3: 还没完:100个文件也是多的,也是需要处理减少的,因为同一路由文件没有进行合包处理,所以每个组件都是最小化原子,这是在生产上不期望的——但我不会优化了,哈哈...拜拜,这速度也满足要求了

http://www.jsqmd.com/news/4105/

相关文章:

  • 深入解析:小九源码-springboot050-基于spring boot的苏蔚家校互联管理系统
  • 12_TCP和UDP实现服务端和客户端的通信
  • 各种软件的官方文档和安装包下载地址记录
  • 基于导频的OFDM系统的信道估计(使用LS估计算法)
  • Day22super详解
  • 外发图纸如何控制的最佳实践与注意事项
  • Gitee:中国开发者生态的数字底座正在重构技术格局
  • 快递100
  • 文件同步软件是什么?主要有哪几种类型?
  • “铸网2025”山东省工业和互联网CTF竞赛-web
  • python+springboot+uniapp微信小代码“美好食荐”框架 美食推荐 菜谱展示 用户互动 评论收藏框架
  • 领嵌iLeadE-588网关AI边缘计算盒子一键部署二次开发
  • 2025年值得选的文件摆渡系统品牌解析
  • 分布式专题——14 RabbitMQ之集群实战 - 指南
  • QT打包工具
  • QT与Spring Boot通信:实现HTTP请求的完整指南 - 教程
  • 全球知名的Java Web开发平台Vaadin上线慧都网!
  • C#实现与欧姆龙PLC通信
  • linux docker 配置外网拉镜像
  • 什么是跨网文件摆渡系统?IT运维效率提升300%的秘密武器
  • 深入解析:PyTorch 神经网络工具箱核心内容
  • 借助Aspose.Email,在 Python中创建事件日历
  • 实用指南:【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(三)
  • C++ map 和unordered_map 的区别
  • 阿里云边缘安全加速ESA
  • 本土项目管理工具Gitee如何助力企业数字化转型
  • 【英语启蒙动画合集】0基础宝宝必看的动画,超全!直接下载~
  • 基于OPC UA协议的SIMATIC PLC通信实现
  • Transformer模型/注意力机制/目标检测/语义分割/图神经网络/强化学习/生成式模型/自监督学习/物理信息神经网络等 - 指南
  • AI 自动化智能体训练营 | 借助人工智能提升工作效率,打造自己的智能体工作流