作者:要和代码过一辈子
来源:优快云
原文:https://blog.youkuaiyun.com/qq_35790269/article/details/82888252
版权声明:本文为博主原创文章,转载请附上博文链接!
最近公司开发的小程序控制了代码量之后还是超过了2M,解决办法是:使用分包加载。
大部分小程序都会有几个功能组成,通常独立,但是会有公共的逻辑,并且这些功能通常会对应几个独立的页面,那么小程序代码的打包,大可不必打成一个,可以按照功能的划分,拆分成几个分包,当需要用到某个功能时,才加载这个功能对应的分包。
对于用户来说,小程序的加载流程变成了:
1,首次启动,加载小程序主包,显示主包内的页面
2,如果用户进入了某个分包的页面,再加载这个对应分包,显示分包的页面
采用分包加载,对于开发者而言,能使小程序有更大的代码体积,承载更多的功能和服务,对于用户而言,可以更快的打开小程序,同时再不影响启动速度的前提下使用更多功能。
分包的划分
在配置前首先需要开发者规划下各个分包需要容纳的内容,建议开发者按照功能划分的原则,将同一个功能下的页面和逻辑放置于同一个目录下,对于一些跨功能之间的公共逻辑,将其放置于主包下,这样可以确保在分包引用这部分功能时,这部分的逻辑一定存在。
在分包划分时,应该注意以下事项:
1,避免分包与分包之间引用上的耦合。因为分包的加载是用户操作触发的,并不能确保其分包加载时,
另一个分包就一定存在,这个时候可能导致js逻辑异常,某些资源找不到的错误;
2,一些公共用到的自定义组件,需要放在主包内;
3,使用小程序自带的tab切换时,list中的页面需要放在主包内。
分包的配置
开发者通过在app.json subPackages 字段声明项目分包结构:
{
'pages': [
'pages/welcome',
'pages/movie',
'pages/tvPlay'
// 'pages/detail'
],
'subPackages': [
{
'root': 'packageA',
'pages': [
'pages/detail'
]
}
]
}
分包加载的低版本兼容问题
微信6.6.0版本开始支持分包加载,而对于低版本的客户端,编译后台会将所有的分包打包成一个整包,老版本的客户端依然按照整包的方式进行加载。所以还是建议开发者尽量控制代码包的大小。
目前小程序分包大小的限制
整个小程序所有分包大小不超过 8M
单个分包/主包大小不能超过 2M
参考网址:
https://blog.youkuaiyun.com/acmdown/article/details/80037660
官方网址:
https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/basic.html?search-key=subPackages