一、问题:我们在小程序工具中开发时候,需要本地打包,但是当本地的打包文件大于2M时候,预览的二维码就会有问题,导致真机扫码打不开或者有遗漏。
二、此时就需要开启分包
1.微信小程序每个分包的大小是2M,总体积一共不能超过20M。
2.开启分包后,再次编辑打包,预览的二维码就可以正常打开小程序了。
三、uni-app官方分包文档
四、分包注意项
1.微信小程序每个分包的大小是2M,总体积一共不能超过20M。
2.开启分包后,再次编辑打包,预览的二维码就可以正常打开小程序了。
3.开启分包,必须注意:需要将原来的打包文件unpackage下的dist文件删除;否则编译时候,你会发现自己的分包反而越来越大;删除原来打包的dist后再重新发行打包就行。
五、分包步骤1
1.在pages同级,创建pagesA和pagesB两个分包;文件夹的名字随便命名,每分一个包就创建一个文件夹;如下图
2.需要注意:小程序的首页和tabBar页必须放在主包pages内;其他页面可以放在分包内
3.分包下支持独立的 static 目录,用来对静态资源进行分包。
六、分包步骤2
1.将部分页面移到分包pagesA或者pagesB下;
2.注意:如果你一开始就分包了,路径跳转或者引入应该不会有问题;但是如果你一开始都是在pages下,后来才开始分包,
然后将部分vue页面移到分包文件夹下,可能路径跳转和引入的文件路径就错了,就需要手动修改跳转路径和引入路径,方式修改见下图(说多了都是泪);。
引入的修改:使用@引入
每个分包下都可以有自己的static,放置图片路径跳转的修改,例如主包pages的下的index页面,跳转到了分包pagesB下的get-password页面:只需要写上get-password在pagesB的路径即可:
uni.navigateTo({url:"/pagesB/get-password?obj= " +encodeURIComponent(JSON.stringify(obj)),});
七、分包步骤3
1.更改pages.json配置:如下图。
1.1pages主包:不需要动,只需要方主包页面
1.2subPackages:分包加载配置,subPackages 节点接收一个数组,数组每一项都是应用的子包;subPackages 里的pages的路径是 root 下的相对路径,不是全路径。
例如我的就是放了pagesA和pagesB,一定要注意root的是写分包名称,不需要 /;path写对应的页面路径
"subPackages": [{"root": "pagesA","pages": [{"path": "add-car","style": {"navigationBarTitleText": "新增车辆"}},{"path": "car-info","style": {"navigationBarTitleText": "详情车辆"}},]},{"root": "pagesB","pages": [{"path": "get-password","style": {"navigationBarTitleText": "找回密码"}}]}],
1.3preloadRule:分包预载配置
"preloadRule": {"pagesA/add-car": {"network": "all","packages": ["__APP__"]},"pagesA/car-info": {"network": "all","packages": ["__APP__"]},"pagesB/get-password": {"network": "all","packages": ["pagesB"]}},
2.开启分包后,再次编辑打包,预览的二维码就可以正常打开小程序了。
八、分包步骤4
1.点击左侧列表manifest.json–>源码视图,找到npm-wexin,开启分包优化
//开启分包优化"optimization" : {"subPackages" : true}
九、分包步骤5
1.压缩代码
十、分包步骤6
1.删除原有的打包文件。
2.重新发行打包。
3.分包前后的效果对比:存在主包和分包,体积也相应变化减小,预览也可以了。
分包前:
分包后:
有用就点个赞吧!