在小程序开发的过程当中,小程序的体积会随着版本的迭代变的愈来愈大,这时候咱们就但愿可以将小程序分红多个包从服务器下载,这样既能够加快首屏的渲染也便于后续按需加载的实现。小程序在微信客户端 6.6.0,基础库 1.7.3 及以上版本开始支持 分包功能。
在构建小程序分包项目时,构建会输出一个或多个分包。每一个使用分包小程序一定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些全部分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。
在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展现。html
{ "pages": ["pages/index", "pages/shopcart"], "subpackages": [ { "root": "packageA", "pages": ["pages/mine", "pages/order"] }, { "root": "packageB", "name": "pack2", "pages": ["pages/detail", "pages/pay"] } ] }
├── app.js ├── app.json ├── app.wxss ├── packageA │ └── pages │ ├── mine │ └── order ├── packageB │ └── pages │ ├── pay │ └── detail ├── pages │ ├── index │ └── shopcart └── utils
subpackages
后,将按 subpackages
配置路径进行打包,subpackages
配置路径外的目录将被打包到 app(主包) 中subpackage
的根目录不能是另一个 subpackage
内的子目录tabBar
页面必须在 app(主包)内packageA
没法 require packageB
JS 文件,但能够 require app
、本身 package 内的 JS 文件packageA
没法 import packageB
的 template,但能够 require app
、本身 package 内的 templatepackageA
没法使用 packageB
的资源,但能够使用 app
、本身 package 内的资源