当前位置: 首页 > 知识库问答 >
问题:

前端 - umijs4构建产物为什么有这么多文件?

彭博厚
2023-07-20

之前使用的是umi3,最近升级成umi4了。想了解下umi4为什么将构建产物分成这么多?
和传统的打包成一个js文件和css文件,有什么优点吗

共有1个答案

臧翰采
2023-07-20

将文件打包成一个或是多个并 不是 直接判断结构好坏的标准,我们应该按实际场景看待

对于小型项目,将 js 和 css 打包成一个文件可以减少频繁的请求(因为每加载一个文件都需要建立连接、发送请求等操作,因此减少请求数量可以相对提高页面加载速度)

随着应用程序变得越来越复杂、规模庞大,并且需要支持动态代码拆分、按需加载等功能时,分包构建和模块化就体现出价值了

umi js 就是这么做的

  • 代码分割:通过对路由进行动态代码拆分,将不同路由对应的代码拆分成 独立 的文件。这样做的好处是在用户访问不同页面时只加载当前页面所需的代码,减少初始加载时间,并且可以实现按需加载,降低整体应用的体积。
  • 异步加载:异步加载模块,在需要时才去下载该模块所需的文件。这种方式可以加快首次渲染速度,提高用户体验。
  • 按需加载:通过配置路由信息和按需引入组件等方式,可以实现 按需加载 功能。即使应用非常庞大,也可以确保只有在需要时才会下载相关资源,从而降低初始载入时间和网络负载。

异步加载和按需加载蛮像的,区别是异步强调 并行 地请求和加载资源文件;而按需强调 特定条件 下才去请求和加载资源文件

对了,结尾提一嘴,umi js 的作者叫 云谦,题主感兴趣可以在 github 和 微信公众号 上找到他,直接阅读作者的文章肯定效果更佳

参考
umijs github
umijs blog
umijs 构建对比(微信文章,可能会过期)
 类似资料:
  • 在查看std::swap的文档时,我看到了许多专门化<看起来每个STL容器以及许多其他std设施都有专门的交换<我想借助模板,我们不需要所有这些专门化? 例如, 如果我编写自己的

  • 线上出现这种问题的,过了一会就好了

  • 问题内容: 我有一个flex项目,它也是一个flex容器,问题是即使添加了,它的flex项目也拒绝包装。 谁能为我解决这个问题,或指出我做错了什么。 问题答案: 嵌套容器中的伸缩项目按 百分比 调整大小。 由于百分比长度基于父级的长度,因此 没有理由进行包装 。它们将始终是父级的40%,即使父级的宽度为1%。 如果您使用其他长度单位,例如或,它们将自动换行。

  • 以上是目前我的CNN的架构。然而,它说它有1.8m可训练的参数。为什么会这样?我以为第一层给出了(32*4=128个参数),但是我如何找到模型的其余部分有多少个参数? 我的理解是,CNN架构应该只依赖于过滤和最大池,因为它们是共享权重。为什么我有这么多参数?我应该如何着手减少这个数字? 我不是问如何使用“汇总”找到参数的数量。我是问为什么我的模型有这么多参数,以及我如何减少这个数字。我不直观地理解

  • 问题内容: 这是所有编程语言所共有的吗?在进行多次打印后再执行println似乎更快,但是将所有内容移动到字符串中并仅进行打印似乎最快。为什么? 编辑:例如,Java可以在不到一秒钟的时间内找到所有高达100万的质数- 但要进行打印,然后在自己的println中将它们全部输出可能需要几分钟!最多可打印100亿小时! 例如: 问题答案: 速度并不慢,而是由主机操作系统提供的与控制台连接的基础。 您可