uni-app 小程序配置分包

1,852 阅读2分钟

小程序中,分包(分包加载)是一种优化小程序加载和性能的方法,尤其在代码体积较大时。这篇笔记主要记录如何配置分包

要点详细说明
什么是分包将小程序代码和资源划分为多个独立的包,主包在启动时加载,分包按需加载。
为什么要分包- 减少主包大小,避免超过限制
- 提升启动速度,减少用户等待
- 按需加载节省流量
是否可以分多个包是,可以分多个包(如微信小程序:最多 200 个分包,整个小程序所有分包大小不超过 30M(服务商代开发的小程序不超过 20M),单个包不超过 2 MB)。
配置方法pages.json 中通过 subPackages 配置分包,主包和分包需分别定义。
注意事项- 主包不能依赖分包,避免循环依赖
- 提取公共模块,避免重复加载
- 动态分包加载需手动调用 wx.loadSubpackage
应用场景- 按模块分包:如订单管理、用户中心
- 按页面分包:如活动页面、特定功能
- 按平台优化:根据不同平台的限制调整分包策略
动态分包使用平台 API(如微信的 wx.loadSubpackage)手动加载需要的分包,适合大型模块或延迟加载场景。

上面表格就是分包的一些基础知识,我们现在上手操作下如何新建分包

新建分包

uni-app分包文档, 在pages.json里添加subPackages,subPackages里pages为空,等下我们新建页面的时候,会自动在subPackages里pages注册页面

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    }
  ],
   "subPackages": [
     {
       "root": "pages-me-reserve",
       "pages": []
     },
   ]
}

接着在HBuilderX项目根目录新建一个分包文件夹,和subPackages里root对应的名称相同 image.png

在分包文件夹pages-courses右键新建页面,选择分包那里确认下是不是我们新建的分包名称 image.png

新建完后,subPackages里pages自动注册了我们新建的页面 image.png

这里,我新建了2个分包

 "subPackages": [
    {
      "root": "pages-courses",
      "pages": [
        {
          "path": "newCourse/newCourse",
          "style": {
            "navigationBarTitleText": "新建课程"
          }
        },
        {
          "path": "courseList/courseList",
          "style": {
            "navigationBarTitleText": "课程列表"
          }
        }
      ]
    },
    {
      "root": "pages-me-reserve",
      "pages": [
        {
          "path": "reserveList/reserveList",
          "style": {
            "navigationBarTitleText": "我的预约"
          }
        }
      ]
    }
  ],
跳转分包页面

我们在跳转分包页面的时候需要加上root路径,比如上面的分包跳转新建课程,加上了root路径/pages-courses

  uni.navigateTo({
    url: `/pages-courses/newCourse/newCourse`,
  });