# 独立分包

uni-app vue3 项目 从 5.21 支持小程序独立分包功能,独立分包是指在小程序中将部分页面和资源打包成一个独立的分包,独立分包可以单独加载和运行,不依赖于主包的资源和代码,可以很大程度上提升分包页面的启动速度。

# 平台兼容性

Vue 版本 / 平台 微信小程序 支付宝小程序 百度小程序 抖音小程序 飞书小程序 QQ 小程序 快手小程序 京东小程序 小红书小程序 鸿蒙元服务
vue3 x x x
vue2 x x x x x x x x x

# 配置

# vue3

vue3 项目会自动识别 pages.json 中的分包配置,并将其打包成独立分包。配置独立分包需要在 pages.json 中的 subPackages 中进行配置,示例如下:

// pages.json
{
  "subPackages": [
    {
      "root": "path/to/subpackage",
      "independent": true, // 声明此分包为独立分包
      "pages": [
        {
          "path": "page1",
          "style": {
            "navigationBarTitleText": "独立分包页面1"
          }
        }
      ]
    }
  ]
}

# vue2

vue2 项目除了需要在 pages.json 中的 subPackages 中进行配置,还需要在 manifest.json 中的 mp-weixin 配置中开启独立分包功能,示例如下:

// manifest.json
{
  "mp-weixin": {
    "independent": true // 开启独立分包功能
  }
}

# 当前限制

  • 暂不支持自动复制或重写 root 外的业务依赖,包括 JS、TS、Vue 文件、原生小程序组件、静态资源和样式资源。
  • 暂不复用主包 main.* 中的业务初始化逻辑,包括 app.use()globalPropertiesprovide、store、i18n、全局 mixin 等。
  • 暂不复用 App.vue 的应用级样式,也不模拟主包 App 生命周期。
  • 独立分包引用 root 外业务文件、组件、静态资源或样式时会受到限制并给出错误提示,现阶段需要开发者主动将相关依赖放入独立分包 root 内。
  • 不支持通过 hx 在独立分包根目录创建 uni-modules,如有需求,可以手动创建。
  • uni-stat 统计暂不支持独立分包