问题描述:
虽然分包了。但是主包里还有很多uniui的组件,占了2m多,之前一直是点击运行,然后再上传代码。提示的超过2m无法上传。
解决办法:
点击发行,然后上传就可以了。
优化建议:
1、组件按需导入,不用的就删了。
2、图片要压缩一下
3、 主要的页面放在主包里,次要的就放在分包里。
分包方法:
uniapp-微信小程序分包操作步骤详解_南北极之间的博客-CSDN博客_uniapp微信小程序分包上传(就是以前全都放在pages里面的模块。现在把次要的模块剪切到新目录里去。我这里还建了一个pages目录。也可以不建这个目录。而且里面的结构也可以多层次。结构变了,访问的路径也要变。测试可以成功访问之后,再把刚才剪切到新包里的那些文件路径都检查一下。没问题就可以发布上传了。想分几个包就建几个新目录。比如package2、package3……然后把刚复制的那些粘贴到package1的pages里面。(分包的参数结构也和原来的pages里面是一样的。url就是由分包的root加上path组成的。https://blog.csdn.net/qq_22182989/article/details/128696094
你踩的坑这里都有微信小程序分包指南:
1、tabbar 必须在主包中
这条在官方文档中也有说明:
tabBar
页面必须在 app(主包)内
这条比较容易理解,tabBar
页面必须放在app.json中的外层pages中而不能放在subpackages(分包)中。否则报错:
“pages/index” 不应该在 [subpackages] [0] 中
2、主包大小问题和公共资源读取问题
辛苦分包完成,还是无法运行成功,原来是某一个包仍然"超重",这时可以使用开发者工具的代码依赖分析工具查看各包的大小情况。
这时我们可能会发现主包太大了,但是外层pages中并没有几个页面,这是为啥?
点开代码依赖分析工具发现主包中包含了大量的公共资源,比如公用组件,api这种,原因也在上面写到了:
声明
subpackages
后,将按subpackages
配置路径进行打包,subpackages
配置路径外的目录将被打包到 app(主包) 中
有小机灵鬼会想,我把这些公共资源单独放在一个包里不就可以了吗。一试,项目都起不来了。
子包可以使用主包的资源,但是主包不可以使用子包的资源,子包之间的资源也不通用。
所以公共资源一点要放在主包里。
如果主包太大了,只能将公共资源放在对应的子包中,而不能跨包调用哦。