搜索

查看: 3197|回复: 11

[JavaScript] 使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)

[复制链接]
发表于 2023-5-4 11:51:16 | 显示全部楼层 |阅读模式
Editor 2023-5-4 11:51:16 3197 11 看全部
1.问题描述
正常的的微信小程序在编译后,主包应保持在2MB左右(限制最大2MB),其余的文件通过分包来进行加载

202302211120521.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)1818 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


但是有的情况下,微信小程序的主包能达到3MB,vendor.js会达到1.5MB

202302211120522.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)6862 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


2.问题解决
当你发现的你的微信vendor.js只有1个文件夹,且这个文件非常大时,首先需要检查manifest.json
在这个文件夹下的源码视图中,在这个文件下的mp-weixin节点有个optimization

202302211120523.jpg

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)3975 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


optimization下的subPackages节点时用来控制微信分包的,需要将此节点设为true
"optimization" : {
    "subPackages" : true
}
一般的微信小程序设置这个节点就能够解决
但是如果你的微信小程序在uni_modles下引入了非常多的uni插件,比如说:uni-id-pages,uni-im,uSearch,uni-pay等uni全家桶
这些页面默认都会在主包里,因为uni_modules是主包,所以该目录下的uni-id-pages和uni-im页面也会打包到主包里(主包里面的vendor.js会打包所有主包里面的页面与插件的js文件),所以导致了主包里面的vendor.js在分包打包后依旧过大
这时就需要我们把你项目中引用的插件也进行分包(uni-id-pages和uni-im引入时在uni_modules下)

202302211120524.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)7156 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


在pagesjson中添加分包信息,将在主包中注册的插件的页面都移动到此分包中

202302211120525.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)2665 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


通过查找替换功能,将uni-id-pages等插件的路径由“uni_modules/uni-id-pages”替换为“subpackageuni/uni-id-pages”
不建议直接把uni_modules直接分包,因为其中可能包含其它组件,这些组件最好注册在主包中注册,因为子包不能引用子包的插件,所以插件如果在子包中,就只有子包中才能引用

202302211120526.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)5017 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


同理,将uni-id-pages等插件分包后,这些插件就不适用与uni-app的组件规则,就需要我们手动去引入
在uni-id-pages下有如下的组件,这些组件在经过分包之后,只能在子包内才能访问,而通过uniapp的组件引入是通过easycom组件规范来引入的,详细见如下链接:
组件使用的入门教程 | uni-app官网

202302211120527.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)6579 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


因此这些组件需要通过vue语法引入到页面(必须要在子包内引入,因为你如果把这些组件都通过注册全局组件来引入,那么到头来还是会增加vendor.js的大小,因为vendor.js会引入全局组件)
通过vue语法,将所有的组件导入到所有的页面(为了方便)

202302211120528.jpg

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)692 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


每个页面都把这些组件复制一遍即可

202302211120529.jpg

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)8944 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


最后再进行分包你就会发现主包的vendor.js明显小了

2023022111205310.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)4718 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


而由于把uni-id-pages和uni-im进行了分包,分包中的vendor.js明显变大(这样就把以前位于主包的vendor.js打包到了分包中)

2023022111205311.png

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)676 作者:Editor 帖子ID:2772 论坛知鸟论坛_zn60.com


总结
到此这篇关于使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)的文章就介绍到这了,更多相关uniapp打包主包和vendor.js过大内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛!
发表于 2023-6-29 04:42:15 | 显示全部楼层
ffycxyw2274436 2023-6-29 04:42:15 看全部
这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
发表于 2023-6-29 07:16:08 | 显示全部楼层
462710480 2023-6-29 07:16:08 看全部
既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
发表于 2023-6-29 17:00:34 | 显示全部楼层
六翼天使494 2023-6-29 17:00:34 看全部
楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
发表于 2023-6-29 17:07:09 | 显示全部楼层
向往草原403 2023-6-29 17:07:09 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
发表于 2023-6-29 18:02:13 | 显示全部楼层
小妖花满楼满fx 2023-6-29 18:02:13 看全部
我看不错噢 谢谢楼主!知鸟论坛越来越好!
发表于 2023-6-29 19:14:15 | 显示全部楼层
贰十岁装成熟装s 2023-6-29 19:14:15 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
发表于 2023-6-29 20:17:14 | 显示全部楼层
风吹吹蛋蛋疼风w 2023-6-29 20:17:14 看全部
既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
发表于 2023-6-29 21:44:53 | 显示全部楼层
心随674 2023-6-29 21:44:53 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
发表于 2023-6-30 00:46:40 | 显示全部楼层
麻辣鸡翅 2023-6-30 00:46:40 看全部
楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| 小黑屋| 知鸟论坛 |网站地图
本站资源来自互联网用户收集发布,如有侵权请邮件联系处理。 联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表