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

深入浅出Vite:Vite打包与拆分

一、背景

在生产环境下,为了提高页面加载性能,构建工具一般将项目的代码打包(bundle)到一起,这样上线之后只需要请求少量的 JS 文件,大大减少 HTTP 请求。当然,Vite 也不例外,默认情况下 Vite 利用底层打包引擎 Rollup 来完成项目的模块打包。

某种意义上来说,对线上环境进行项目打包是一个必须的操作。但随着前端工程的日渐复杂,单份的打包产物体积越来越庞大,会出现一系列应用加载性能问题,而代码分割可以很好地解决它们。

当然,在实际的项目场景中,只用 Vite 默认的策略是不够的,我们会更深入一步,学习 Rollup 底层拆包的各种高级姿势,实现自定义拆包,同时我也会带大家通过实际案例复现 Rollup 自定义拆包经常遇到的坑——循环引用问题,一起分析问题出现的原因,也分享一些自己的解决思路和方案,让大家对 Vite 及 Rollup 的代码分割有更加深入的掌握。

不过,在正式讲解之前,给大家介绍几个专业概念:bundle、chunk、vendor。

  • bundle:指的是整体的打包产物,包含 JS 和各种静态资源。
  • chunk:指的是打包后的 JS 文件,是 bundle 的子集。
  • vendor:是指第三方包的打包产物,是一种特殊的 chunk。

二、Code Splitting 解决的问题

在传统的单 chunk 打包模式下,当项目代码越来越庞大,最后会导致浏览器下载一个巨大的文件,从页面加载性能的角度来说,主要会导致两个问题࿱

http://www.lryc.cn/news/93403.html

相关文章:

  • 大数据ETL工具Kettle
  • 大学物理(上)-期末知识点结合习题复习(4)——质点运动学-动能定理 力做功 保守力与非保守力 势能 机械能守恒定律 完全弹性碰撞
  • 这两个小众的资源搜索工具其实很好用
  • Java设计模式(六)— 单例模式1
  • iOS -- isa指针
  • 【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析
  • 新型糖基化氨基酸:Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH,化学CAS号174783-92-7
  • 网络安全(黑客)怎么自学?
  • Vue学习 之 MacOS 安装 webpack
  • 媒介易教你海外品牌推广:如何选择适合的新闻通稿发布平台?
  • 网络安全的学习路线是怎么样的?
  • QT学习07:五种按钮控件
  • chatgpt赋能python:Python如何截图运行结果
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#)
  • RT-Thread FAL组件
  • 【git切换分支/tag】git stash保存暂不提交的更改
  • 【爬虫】4.5 实践项目——爬取当当网站图书数据
  • Socket 编程:基础概念辨析
  • git lfs下载指定文件git lfs pull --include=“*.bin“
  • JavaScript 数组 函数
  • 【哈佛积极心理学笔记】第7讲 逆境还是机遇
  • java springboot整合MyBatis做数据库查询操作
  • 11 二阶矩方法和Lovasz局部引理
  • 低代码赛道拥挤 生态聚合成为破局关键
  • B+树:高效存储与索引的完美结合
  • 左右排版的PDF,如何转换为单栏排版的word?
  • D349周赛:注意题目提示里,数据范围隐含的算法复杂度提示
  • iOS -- block one
  • 第十二篇:强化学习SARSA算法
  • 电力vr智能巡检模拟实操教学灵活性高成本低