uniapp编写完微信小程序后,上传代码时提示超过2M上传失败,是很多新手会遇到的问题,
我总结 了当初开发uniapp小程序优化打包体积的方案
1、uniapp工具运行时开启压缩代码
运行到小程序模拟器那一栏有一个运行时是否压缩代码,把它选择一下
2、压缩图片,或者将图片上传到服务器,通过网络地址引入
在公共资源中,一张图片动辄好几十M甚至好几百M,如果图片不是很多,并且对图片质量要求不是特别高,可以使用图片在线压缩工具压缩,真的会减少很多内存,推荐一个我平时会用的就是这个:https://tinify.cn/
如果图片比较多,并且对图片显示质量要求也很高,建议上传到服务器,引用网络地址
3、在微信开发者工具上进行一些代码压缩设置
4、查看代码依赖分析,优化体积比较大的代码
点击代码依赖分析,查看代码依赖
可以看到有两项明显占用很大的内存,一个是 vendor.js还有一个是echarts,由于前者是uniapp的编译文件,不太好压缩体积,就将目光放到了echarts,如果是主包里面使用,可以将它采用npm下载,再引用,如果必须要在主包中使用echarts可以使用uniapp插件市场的插件(不需要将echarts下载到本地的),这里我也整理了一些常见的,
详情见我上一个博客
链接:https://blog.csdn.net/weixin_45956954/article/details/134835837?spm=1001.2014.3001.5501
5、分包加载(强烈推荐)
除了tabBar中的文件不能分包,别的页面都可以分包
建议将tabBar中的文件和全局公共资源放到主包,其它代码都进行分包加载
注意:主包不能使用分包的任何资源,包括组件,图片等,小程序启动时,会先加载主包中的资源文件,当进入风暴页面后,才会加载分包的文件,刚打开小程序时,分包资源还未加载,无法使用其中的组件,类似于组件的懒加载
在uniapp中进行分包,只需要在 pages.json文件夹中 定义一个 subPackages 和pages 同级别
"subPackages": [
{
"root": "overSitePage", // 分包跟目录
"pages": [ // 分包中的pages
{
"path": "pages/overSite/overView"
}
]
}
],
目录结构如下, 和pages主包同级,没有放到 overSitePage中的文件,打包都会默认放到主包中
在小程序模拟器也可以查看分包的大小,防止分包超过2M
这些就是平时遇到缩小体积会使用的方式,如果下次遇到其它方法,会继续更新