小程序分包优化实践:解决主包过大和vendor.js体积问题
创作时间:
作者:
@小白创作中心
小程序分包优化实践:解决主包过大和vendor.js体积问题
引用
CSDN
1.
https://m.blog.csdn.net/LifeRiver/article/details/144831941
随着uniapp开发的小程序功能越来越复杂,主包的大小也逐渐增长,导致上传代码时遇到了2MB的限制。同时,由于微信小程序tabbar页面必须放在主包中,这进一步增加了主包的负担。为了提高用户体验并遵守平台规则,我们有必要采取一系列措施来优化小程序的打包结构,确保其符合性能和体积的要求。
小程序分包机制 (SubPackages)
小程序分包是一种将应用拆分为多个小部分的技术,它允许开发者将应用的不同部分独立打包,从而减少初次加载时间。通过合理配置 pages.json 文件中的 subPackages 字段,可以指定哪些页面属于分包,并且只在需要的时候才进行加载。这样不仅有助于控制主包的大小,还能加快非首屏页面的加载速度。
因小程序有体积和资源加载限制,各家小程序平台提供了分包方式,优化小程序的下载和启动速度。上传代码时,主包必须在2M以内。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据 pages.json 的配置进行划分。
pages.json 页面配置
{
"pages": [
// 主包页面路径
],
"subpackages": [
{
"root": "subpackagePath", // 分包根目录
"pages": [
// 分包内页面路径
]
}
]
}
manifest.json 中小程序配置
"optimization": {
"subPackages": true
},
依赖分析
在优化过程中,了解项目构建输出的具体情况是非常重要的。通过依赖分析工具开发者可视化打包后的输出文件结构,可以看到各个模块的大小、依赖关系等信息,这对于诊断性能瓶颈、减少包体积以及优化加载时间非常有帮助。
- 通过微信开发者工具进行依赖分析,及分包大小查看。
- 通过
rollup-plugin-visualizer插件查看vendor.js依赖
- 安装:
npm install rollup-plugin-visualizer --save-dev
- 配置示例:
import visualizer from 'rollup-plugin-visualizer';
build: {
rollupOptions: {
plugins: [
visualizer({
filename: './dist/stats.html', // 定义输出文件位置
open: true, //自动打开浏览器查看
}),
],
},
},
主包大小优化方案
- 资源外部化: 对于图片、图标等静态资源,考虑将其上传至 OSS 服务。还可以利用在线工具如TinyPNG进行压缩处理,以减小文件尺寸。
- 减少第三方库依赖: 检查项目中使用的第三方库,尽量选择轻量级版本,如 lodash、qs、dayjs。
- 依赖分包:把
node_modules中的单独依赖放到对应子包中,如 gesti。避免所有页面都加载不必要的代码。 - 样式表瘦身: 在
uni.scss或App.vue中导入全局样式时,要谨慎选择必要的样式规则,去除不再使用的样式定义,尤其是批量生成或来自大型UI框架的样式文件。 - 组件库精简: 如果同时依赖了多个组件库,建议保留一个主要的UI框架或优先使用其中一个,以减少重复代码的引入。
- 特定组件优化:如 uCharts 等,可修改其源码仅保留需要的功能。
结语
通过对小程序分包策略的理解和实际操作,结合有效的依赖分析工具以及针对性的优化措施,我们可以显著降低主包的体积,改善应用的整体性能。希望上述方法能够给正在面临类似挑战的开发者带来启发,并助力创建更加高效的小程序体验。
热门推荐
谐振电路 - 01 介绍
谐振电路 - 01 介绍
借入资金利息怎么算?如何计算借入资金的成本?
债权人委员表决:关于债务重组方案的投票 meeting
瑞士安乐死:一个充满争议和功能的医学服务
豆腐皮要怎么做才能让口感滑嫩,方法很简单,学会了家人有口福
《幽灵公主》电影赏析
如何管理借口的客户
腿抖是什么病的预兆
股市风向标 | A股市场冲高回落后的分析与展望
中医药大学是一本还是二本?选择指南
一文读懂“道氏理论”精髓:终于有人把道氏理论讲透了,简单实用
定期股东会会议的重要性与召开流程解析
农村危房倒塌致人死亡事故的归责原则与责任分配
合同规范性审核要点:确保合同合法有效
团扇是什么?干嘛用的
如何通过正规渠道进行货币兑换?这种兑换方式有哪些具体的步骤和风险?
基差是什么意思
基差的真相:是基差就一定会修复吗?
重磅!中央汇金增持四大行,将长期支持其稳健发展
符合什么条件可以做查封
气凝胶文献研究:探索其在新材料领域的应用与发展前景
跑步社交成新趋势 “City Run”带动跑步经济热
一跑就累?是身体在发出“厌跑信号”!
杜甫《春夜喜雨》赏析:春雨无声润万物
《春夜喜雨》诗意及全文赏析
一文读懂建筑面积:从定义到计算,再到误差控制
怎么煮蛋才不会开裂 如何让水煮蛋不开裂
简历名称怎么写合适
多核提升骁龙8Gen3,与骁龙8Gen2相比,到底哪个更好