前些天小程序提交审核之后发布了,但是一看好多页面都是点进去之后空白,很迷惑,体验版测试的都是好好的,怎么就发布了就空白页了呢?迷惑至极
经过一番测试发现了是分包的页面都是空白,这样就更方便排查了
但是有关于小程序上线后分包页面空白页面的解决方法并不是很多,是因为这个问题不常见吗?
后来问了很多大佬,猜测着可能是主包太大了
然后我就删了一大堆没用的文件,缩减了一下主包的体积
就好了!!!!!(我一开始提交审核之后没发布,所以一直看的都是老版本,我以为一直没好呢,真是难搞)
说来也奇怪,主包2452.7kb咋能上传呢,还能发布成功???搞不懂
总结一下分包的整个流程吧
- 先在pages的同级建文件夹,假设就叫packageA和packageB
<html>
|——packagesA
|——goodsInfo
|——goodsInfo.js
|——goodsInfo.json
|——goodsInfo.wxml
|——goodsInfo.wxss
|——packagesB
|——orderPage
|——orderPage.js
|——orderPage.json
|——orderPage.wxml
|——orderPage.wxss
|——pages
|——home
|——home.js
|——home.json
|——home.wxml
|——home.wxss
|——util
|——app.js
|——app.json
|——app.wxss
</html>
差不多就是这个样子的,分包可以建一个也可以建两个,但是所有的tabbar页面都要放在主包里面
- 建好了之后就可以在app.json文件里面声明一下分包路由,要跟pages同级
"pages":[
"pages/home/home"
],
"subpackages": [
{
"root": "packageA",//分包文件名
"pages": [
"goodsInfo/goodsInfo"
]
...
}
],
引用原则
- packageA 无法 require packageB JS 文件,但可以 require app、自己 package 内的 JS 文件
- packageA 无法 import packageB 的 template,但可以 require app、自己 package 内的 template
- packageA 无法使用 packageB 的资源,但可以使用 app、自己 package 内的资源
切记,一定要控制主包体积大小
不然你发布之后,分包里的页面都是空白页
分享完毕