普通分包
收藏我的收藏
使用方法
假设支持分包的小程序,目录结构如下:
├── app.js ├── app.json ├── app.ttss ├── packageA │ └── pages │ ├── pageOne │ └── pageTwo ├── packageB │ └── pages │ ├── pageThree │ └── pageFour ├── pages │ ├── index │ └── logs └── utils
开发者通过在
app.json
的 subpackages
字段声明项目分包结构:写成 subPackages 也支持。
{ "pages": ["pages/index", "pages/logs"], "subpackages": [ { "root": "packageA", "pages": ["pages/pageOne", "pages/pageTwo"] }, { "root": "packageB", "name": "pack2", "pages": ["pages/pageThree", "pages/pageFour"] } ] }
subpackages
中,每个分包的配置有以下几项:打包原则
- •声明 subpackages 后,将按 subpackages 配置路径进行打包, subpackages 配置路径外的目录将被打包到 app(主包)中。
- •app(主包)也可以有自己的 pages(即最外层的 pages 字 段)。
- •subpackage 的根目录不能是另外一个 subpackage 内的子目录。
- •tabBar 页面必须在 app(主包)内。
引用原则
- •packageA 无法 require packageB JS 文件,但可以 require app、自己 package 内的 JS 文件。
- •packageA 无法 import packageB 的 template,但可以 require app、自己 package 内的 template。
- •packageA 无法使用 packageB 的资源,但可以使用 app、自己 package 内的资源。
低版本兼容
由抖音小程序后台编译来处理旧版本客户端的兼容,后台会编译两份代码包,一份是分包后代码,另外一份是整包的兼容代码。 新客户端用分包,老客户端还是用的整包,完整包会把各个
subpackage
里面的路径放到 pages 中。