小程序包大小超过2M的解决方法

Posted puerile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序包大小超过2M的解决方法相关的知识,希望对你有一定的参考价值。

小程序的包被限制在2M以下, 超出的时候点击预览, 发现报错:

Error: 代码包大小为 3701 kb,上限为 2048 kb,请删除文件后重试

1. 优化代码, 删除掉不用的代码

2. 图片压缩或上传服务器

一般图片所占空间较大,尽量不要放在小程序本地文件夹中,如果图片不多我们也可以对图片进行压缩,我经常使用的图片压缩平台:点击这里

也可以将图片上传到服务器上,进行外链引用, 我们使用的是阿里云oss存储, 另外也可以通过图片托管平台对图片进行托管, 我找到的的图片托管平台:点击此处

另外, 通过cli命令创建的uni app项目,可将图片或字体图标放入assets文件夹下,通过require引入, 也可减少主包大小(此方法是否适用其他小程序框架未知)

3. 分包加载

官方推出小程序分包加载这一功能,对于万千小程序开发者来说这无疑是天大的喜讯,关于如何分包,微信官方文档已经解释的十分清楚,在进行分包之前建议认真阅读官方文档

接下来简单介绍一下在不同框架中的使用:

在uni app中:

 uni app通过cli初始化的小程序目录结构如下:

├── src
    ├── main.js
    ├── App.vue
    ├── pages.json
    ├── manifest.json
    ├── orderPackages
    │   └── pages
    │       ├── goodsDetail
    │       └── myorder
    ├── pages
    │   ├── index
    │   └── user
    └── utils

需在pages.json中配置subPackages字段

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    {
      "path": "pages/user/user",
      "style": {
        "navigationBarTitleText": "个人中心"
      }
    }
  ],
  "subPackages": [{
    "root": "orderPackages",
    "pages": [{
        "path": "pages/goodsDetail/goodsDetail",
        "style": {
          "navigationStyle": "custom"
        }
      },
      {
        "path": "pages/myorder/myorder",
        "style": {
          "navigationBarTitleText": "我的订单"
        }
      }
    ]
  }]
}

在页面中跳转分包页面路径:

uni.navigateTo({
     url: `/orderPackages/pages/order/order`
})

在taro中:

taro初始化的小程序目录结构如下:

├── src
    ├── app.js
    ├── app.scss
    ├── index.html
    ├── packageA
    │   └── pages
    │       ├── goodsDetail
    │       └── myorder
    ├── pages
    │   ├── index
    │   └── user
    └── utils

需在app.js中配置subPackages字段

config = {
    pages: [
      ‘pages/index/index‘,
      ‘pages/user/user‘
    ],
    subPackages: [
      {
        ‘root‘: ‘packageA‘,
        ‘pages‘: [
          ‘pages/goodsDetail/goodsDetail‘,
          ‘pages/myorder/myorder‘
        ]
      }
    ]
  }

在页面中跳转分包页面路径:

taro.navigateTo({
     url: `/orderPackages/pages/order/order`
})

以上只罗列了uni app和taro框架分包加载的步骤, 原生小程序分包方法根据官方文档即可快速实现,小程序框架虽多, 大都大同小异,如果后续有使用其他框架进行开发,会进行补充。

以上是关于小程序包大小超过2M的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序照片放哪里不超过2m

小程序调用echarts 超过2m如何解决

微信小程序分包

微信小程序代码最大限制2M的解决方案

微信小程序代码最大限制2M的解决方案

小程序图片处理