普通分包
收藏
我的收藏

基础库 1.88.0 及以上版本开始支持,开发者工具请使用 2.0.6 或大于等于 3.0.6 的版本,可点击下载

使用方法

假设支持分包的小程序,目录结构如下:
├── app.js ├── app.json ├── app.ttss ├── packageA │ └── pages │ ├── pageOne │ └── pageTwo ├── packageB │ └── pages │ ├── pageThree │ └── pageFour ├── pages │ ├── index │ └── logs └── utils
开发者通过在 app.jsonsubpackages 字段声明项目分包结构:
写成 subPackages 也支持。
{ "pages": ["pages/index", "pages/logs"], "subpackages": [ { "root": "packageA", "pages": ["pages/pageOne", "pages/pageTwo"] }, { "root": "packageB", "name": "pack2", "pages": ["pages/pageThree", "pages/pageFour"] } ] }
subpackages 中,每个分包的配置有以下几项:
字段
类型
说明
root
string
分包根目录
name
string
分包别名,分包预下载时可以使用
pages
array
分包页面路径,相对于分包根目录
independent
boolean
分包是否是独立分包

打包原则

    声明 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 中。