uniapp中分包配置subPackages、preloadRule使用

pages.json 用于uni-app的全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。
由于各个小程序平台的限制和优化启动速度。我们可能需要用到分包机制——例如,在微信小程序中生成的单个包大于2M时,无法上传。
所以,我们需要使用subPackges和preLoadRule配置进行分包。

subPackages、preloadRule

pages主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据pages.json的配置进行划分。

分包的目录机构和配置

在uniapp结构里原本已经有一个pages的包(文件夹)了,我们在pages同级里新建多个文件夹。
在这里插入图片描述

  "pages": [
    {
      "path": "pages/home/home"
    },
    {
      "path": "pages/user/user"
    },
  ],
  "subPackages": [
    {
      "root": "pagesA",
      "pages": [
        {
          "path": "homeDetail/index",
          "style": {
            "navigationBarTitleText": "详情"
          }
        }
      ]
    },
    {
      "root": "pagesB",
      "pages": [
        {
          "path": "userDetail/index",
          "style": {
            "navigationBarTitleText": "详情"
          }
        }
        ....
      ]
    },
    ...
  ],

preloadRule

在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,会把对应分包自动下载下来,下载完成后再进行展示。提升进入后续分包页面时的启动速度。
subPackages同级配置preloadRule

  "preloadRule": {
    "pagesA/homeDetail/index": {
      "network": "all",
      "packages": [
        "__APP__"
      ]
    },
    "pagesB/userDetail/index": {
      "network": "all",
      "packages": [
        "__APP__"
      ]
    },
    ...
  },

app的分包,同样支持preloadRule,但网络规则无效。
App默认为整包。从uni-app 2.7.12+ 开始,也兼容了小程序的分包配置。其目的不用于下载提速,而用于首页是vue时的启动提速。App下开启分包,除在pages.json中配置分包规则外,还需要在manifest中设置在app端开启分包设置,详见.

这时主包就不大了

在这里插入图片描述

参考网址

https://uniapp.dcloud.io/collocation/pages?id=preloadrule

### 解决 UniApp 应用程序打包时文件大小超出限制的方法 #### 分包加载 分包加载是一种有效减少主包体积的方式。通过合理规划业务逻辑,可以将不同模块拆分为独立子包,在需要的时候再动态加载这些子包的内容[^1]。 ```javascript // pages.json 配置示例 { "subPackages": [ { "root": "packageA", "pages": [ "index/index" ] } ] } ``` #### 资源压缩与懒加载图片 对于项目中的静态资源如图片等,应尽可能采用高质量压缩工具处理;同时利用懒加载技术只在视图可见区域才去请求图像数据,从而降低初次渲染所需传输的数据量[^2]。 #### 移除不必要的依赖库 检查并清理 `node_modules` 文件夹下不必要第三方类库引用,尤其是那些体积庞大却功能未被充分利用的组件或框架。另外还可以考虑替换为更轻量级的选择来满足相同需求。 #### 使用 Webpack 构建优化插件 Webpack 是构建过程中不可或缺的一部分,借助其丰富的插件生态可进一步精简最终产物尺寸。例如 UglifyJsPlugin 可用于混淆 JavaScript 代码以减小字节数;ImageMinimizerWebpackPlugin 则能自动缩小图片质量而不影响显示效果。 #### 合理配置编译选项 调整 uni-app 的编译参数也能够帮助控制输出文件规模。比如关闭调试模式下的 source map 生成功能、开启 tree-shaking 自动移除非引用代码片段等等措施均有助于缩减整体大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值