uniapp编译微信小程序的分包处理
程序代码包不能超过16MB 大小,所以,小程序可以秒开,但是随着业务的发展,又推出整个小程序所有分包大小不超过 16M,而16M不能秒开,
于是就推出分包加载,分包大小不能超过2M
//分包使用规则 假设小程序目录结构如下:
├── app.js
├── app.json
├── app.wxss
├── moduleA
│ └── pages
│ ├── rabbit
│ └── squirrel
├── moduleB
│ └── pages
│ ├── pear
│ └── pineapple
├── pages
│ ├── index
│ └── logs
└── utils
开发者通过在app.json的subpackages字段中对应的分包配置项中定义independent字段声明对应分包为独立分包。
{
"pages": [
"pages/index",
"pages/logs"
],
"subpackages": [
{
"root": "moduleA",
"pages": [
"pages/rabbit",
"pages/squirrel"
]
}, {
"root": "moduleB",
"pages": [
"pages/pear",
"pages/pineapple"
],
"independent": true
}
]
}
规则:
1.声明 subpackages 后,将按 subpackages 配置路径进行打包,
2.subpackages 配置路径将作为分包打包,其他都被打包到 app(主包) 中
3.app(主包)也可以有自己的 pages(即最外层的 pages 字段)
4.subpackage 的根目录不能是另外一个 subpackage 内的子目录
5.tabBar 页面必须在 app(主包)内
6.每个分包都可以使用自己分包内的资源以及引用require app里面的资源,但是分包与分包之间 ,都是不可通信的
,分包与主包下的pages里面的内容也是不可通信的(这一点有待考证)
立分包中不能依赖主包和其他分包中的内容,包括js文件、template、wxss、自定义组件、插件等。
主包中的app.wxss对独立分包无效,应避免在独立分包页面中使用 app.wxss 中的样式,或者不适用独立分包,去掉"independent": true;
App 只能在主包内定义,独立分包中不能定义 App,会造成无法预期的行为;
独立分包中暂时不支持使用插件
注意点:当你分包之后发现样式错乱了,注意去掉独立分包的"independent": true,亲自踩坑,这里分享给大家避坑了