可能媒用小程序 开发日志(uni-app分包,微信小程序分包)小程序包大小超过2MB限制

message:Error: 系统错误,错误码:80051,source size 2954KB exceed max limit 2MB [20220812 16:39:55][wx14bc5aec35764fb5]
appid: wx14bc5aec35764fb5
openid: o6zAJs-yr38C2ZREld_n3Ks01iLU
ideVersion: 1.05.2201240
osType: win32-x64
time: 2022-08-12 16:40:05

什么鬼为啥小程序预览报错?上传报错?why?真坑啊

没办法静下心看看啥问题,哦 原来是小程序包大小超过2MB限制了呀。

首先排查问题,到底是静态资源太多了还是代码copy冗余了,还是项目真就贼庞大

静态资源太多怎么处理?简单直接放cdn 放后台服务器 总之不要放到前端项目就行。

代码冗余太疯狂怎么处理?(省省吧一般人解决不了)。

项目太大怎么处理? 分包  ps:铺垫这么多终于到正题了。

什么是分包

分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。

分包的好处

对小程序进行分包的好处:

  • 可以优化小程序首次启动的下载时
  • 在多团队共同开发时可以更好的解耦协作
  • 主包超限问题
  • ps:代码冗余用分包也能解决哈哈

配置方法(这是小程序的文件目录,uni-app的也是同理)

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

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

开发者通过在 app.json(uni-app是pages.json) subpackages 字段声明项目分包结构:

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

容易出现的问题: 如果报错了就对照下

分包目录错误:A目录下的AA页面 分包到了B分包;

跨域分包乱引文件或组件等;

tabBar 页面不在主包内;

分包预下载

1. 什么是分包预下载

分包预下载指的是:在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面时的启动速度。

2. 配置分包的预下载

预下载分包的行为,会在进入指定的页面时触发。在 app.json 中,使用 preloadRule 节点定义分包的预下载
规则,示例代码如下:

 "preloadRule": {
    "pages/contact/contact": {
      "packages": [
        "p1"
      ],
      "network": "wifi"
    }
  },

3. 分包预下载的限制

同一个分包中的页面享有共同的预下载大小限额 2M

最后:还有独立分包和分包异步化

这部分就不介绍了一般不会用到,我的小程序用到了独立分包功能可以体验下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值