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

news/2024/10/18 20:19:47/

一、背景

在生产环境下,为了提高页面加载性能,构建工具一般将项目的代码打包(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.ppmy.cn/news/349432.html

相关文章

在线解密PPT幻灯片

想要找回ppt幻灯片密码?不用下载软件,最简单的办法就是百度搜索“密码帝官网”,具体步骤如下:点击“立即开始”,在用户中心上传文件即可,还支持PDF文档、excel表格、word文档、WPS表格文档、RAR/ZIP压缩包文…

uniapp手机无法显示背景图片

看下图片大小是否大于40kb 如果大于40kb就压缩一下图片 如果不大于40kb,看看路径对不对 如果不大于40kb并且路径对那么。。。请另想办法

Android在页面设置背景图片

Android在页面设置背景图片 在页面上设置背景,不需要在布局中设置。 在onCreate方法中加入代码: this.getWindow().setBackgroundDrawableResource(R.drawable.a);R.drawable.a为res资源文件夹下的资源图片a

背景图片自适应铺满整个手机屏幕

.div{ background-image: url("图片.png");background-size: cover;background-repeat: no-repeat;background-position: center center;height: 100vh;width: 100%; }

卷积神经网络CNN(第三次组会)

卷积神经网络 1. 为什么用卷积2. 两个原则3. 参数理解4. 理解卷积 1. 为什么用卷积 2. 两个原则 3. 参数理解 4. 理解卷积

移动端背景图片自适应

移动端背景图片自适应 /*兼容安卓手机没有高度导致无法显示背景图片*/ body{width:100vw;height:100vh;padding: 0;margin: 0;background-image: url("../img/common.png");background-repeat: no-repeat;background-size: 100% 100%;-webkit-background-size: 100%…

背景图片_背景

背景图片 It’s clear that the cybersecurity industry hasn’t been able to agree upon what cybersecurity is and isn’t. Even NIST, who is responsible for the definition of technical terms used by the U.S. Federal Government, has four different definitions o…

背景图片

.cpp代码: QFile file("yinyong.txt"); file.open(QFile::ReadOnly); QTextStream filetext(&file); QString stylesheet filetext.readAll(); //设置样式 this->setStyleSheet(stylesheet); .txt代码: QMainWindow{ background-im…