开发
API

普通分包

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

使用方法

假设支持分包的小程序,目录结构如下:

├── 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 中,每个分包的配置有以下几项:

字段类型说明
rootstring分包根目录
namestring分包别名,分包预下载时可以使用
pagesarray分包页面路径,相对于分包根目录
independentboolean分包是否是独立分包

打包原则

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

点击纠错
评价此篇文档