小程序开放平台

文档中心
起步
目录
配置小程序
小程序框架
小程序运行时
自定义组件
基础能力
存储
网络
分包
简介
普通分包
独立分包
分包预下载
服务端能力
数据预拉取
按需注入和用时注入
开放能力
性能优化
转发
事件回调
基础库
调试
数据分析
服务端调试

普通分包

开发
>
指南
>
基础能力
>
分包
>
普通分包
>
更新时间:2024-11-28 14:25:28

配置方法

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

├── app.js
├── app.json
├── app.css
├── packageA
│   └── pages
│       ├── cat
│       └── dog
├── packageB
│   └── pages
│       ├── apple
│       └── banana
├── pages
│   ├── index
│   └── logs
└── utils

开发者通过在 app.json subpackages 字段声明项目分包结构:

写成 subPackages 也支持。

{
  "pages":[
    "pages/index",
    "pages/logs"
  ],
  "subpackages": [
    {
      "root": "packageA",
      "pages": [
        "pages/cat",
        "pages/dog"
      ]
    }, {
      "root": "packageB",
      "name": "pack2",
      "pages": [
        "pages/apple",
        "pages/banana"
      ]
    }
  ]
}

subpackages
中,每个分包的配置有以下几项:

字段
类型
说明
rootString分包根目录
nameString分包别名,分包预下载时可以使用
pagesStringArray分包页面路径,相对与分包根目录
independentBoolean分包是否是独立分包

打包原则

  • 声明
    subpackages
    后,将按
    subpackages
    配置路径进行打包,
    subpackages
    配置路径外的目录将被打包到 app(主包) 中
  • app(主包)也可以有自己的
    pages
    (即最外层的
    pages
    字段)
  • subpackage
    的根目录不能是另外一个
    subpackage
    内的子目录
  • tabBar
    页面必须在 app(主包)内

引用原则

  • packageA 无法 import packageB JS 文件,但可以 import app、自己 package 内的 JS 文件
  • packageA 无法 import packageB 的 template,但可以 import app、自己 package 内的 template
  • packageA 无法使用 packageB 的资源,但可以使用 app、自己 package 内的资源

低版本兼容

由小红书小程序后台编译来处理旧版本客户端的兼容,后台会编译两份代码包,一份是分包后代码,另外一份是整包的兼容代码。 新客户端用分包,老客户端还是用的整包,完整包会把各个

subpackage
里面的路径放到
pages
中。