uniapp-微信小程序如何分包-以及-静态文件占用空间过多的解决方式

本文介绍了如何在uniapp中实现微信小程序的分包优化,包括在manifest.json和pages.json中配置分包,以及注意事项。同时提到分包无法解决大容量静态文件问题,推荐使用阿里云OSS进行图片存储和路径替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要解决:

1.用uniapp制作微信小程序如何分包,

2.如何解决静态文件占用空间过多的情况~

按照惯例,文章结尾有总结,急用可以直接看。

在第一次用uniapp做微信小程序时,出现一个问题

说主包应小于1.5MB,可以考虑分包优化

那么就了解一下分包的实现方式吧

默认情况下,分包是关闭的,

于是需要先开启分包

在manifest.json中扎到"mp-weixin"在轻重配置上

"optimization":{"subPackage":true}        //开启分包

然后创建与pages同级的目录,即分包,可以创建多个

但注意,所有包,总空间占用不得超过20MB

分包中放入不在tabBar上页面文件

然后再pages.json中与"tabBar"等属性同级的位置上,

写如:

"subPackages":[

        {},//分包1的配置

        {},//分包2的配置

        {}   //分包3的配置

        ...

]

分包的配置样例:

"subPackages":[ 
{
    "root":"PagesA" //与pages同级,所以直接写PagesA,PagesA是自己给分包取的名称
    "pages":[
        {
            本包中页面1配置
        },
        {
            本包中页面2配置
        },
    ]
},
{
    另一个分包的配置
},
    {...}
]

其中

root配置的是分包的根目录

pages进行的是分包中页面段配置,可以直接从原来自动生成的那儿剪切过来,但是要注意去掉路径中的pages/,因为页面已经在分包中而不在pages文件夹(包)中了。如果想自己写,分包中"pages"属性写法与原来在pages中时写法一样。

总结就是,先在manifest.json文件夹中的mp-weixin中配置"optimization":{"subPackage":true}

然后创建与pages文件夹同级的文件夹,即分包

可以将tabBar用到的页面之外的页面放到分包中。

然后配置pages.json

在"tabBar"同级写上"subPackage":[

]

里面用{}装各个分包的配置

主要配置属性有俩

"root":配置分包根路径//由于是与pages包同级,直接写分包名即可

"pages":{

        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "首页"
            }
        },//这些如果之前创建页面是自动生成了,直接剪切过来就行。也可以按照文档进行相应配置~

}

为避免混淆,提示一下这里的"pages"属性不是pages文件夹(包)

配置"pages"属性:在全局文件中找pages.json页面路由,然后看我用蓝框框起的页面两个属性相关的内容即可。不想找,就看下面这张图片,可以解决基本问题

然后在分包后,注意,一些涉及到跳转至被分包页面的navigator标签或方法中的路径要记得更换成新的路径,比如原来是pages/index/index现在在分包PagesA中,就写PagesA/index/index

(当然这只是做演示,index页面作为首页正常是不会放到分包中的,因为几乎一开始就要用到,且首页肯定得放在tabBar中,一般放到主包中)

此外,发现分包并不能解决静态文件(尤其是图片)占空间巨大的问题,

于是可以申请(购买)一个oss对象存储,在阿里云目前(2024.3.26)似乎有免费的3个月使用申请(阿里云,给你做广告了哈~),申请到后将图片上传到其中就会自动生成相应http路径,这样直接把之前在static包中的静态文件的(一般指图片)路径换成图片上传到oss后生成的http路径即可。在把哪些占空间的静态文件上传并替换路径后,就可以把他们从我们的静态文件夹(这里值uniapp项目中的static文件夹)删除了。

### 如何检查和优化 UniApp 构建的微信小程序主包尺寸 #### 一、检查主包大小的方法 为了有效管理并监控微信小程序主包的体积,在开发过程中可以采取如下措施: 1. **使用开发者工具查看** 开发者可以通过微信开发者工具中的“详情”页面来直观地获取当前项目的整体以及分项资源占用情况。这有助于快速定位哪些部分占用了较空间。 2. **分析打包后的文件结构** 完成一次完整的编译之后,进入`dist/build/mp-weixin/`目录下观察实际输出的内容。注意是否存在不必要的大图片或其他静态资源被错误引入到主包里[^3]。 #### 二、减少主包大小的具体策略 ##### 1. 清理冗余代码与资源 - 移除所有不在主包中使用的JavaScript文件和其他类型的资产(如图片),确保只保留必要的组件和依赖库。 - 对于条件渲染逻辑,采用Vue特有的语法糖`v-if`而非原生的小程序写法`wx:if`,因为前者能够更好地配合Tree Shaking机制去除无用分支对应的JS代码[^2]。 ##### 2. 压缩与懒加载技术的应用 - 图片压缩:利用图像处理插件批量缩小分辨率较高的素材;对于图标类图形考虑转为SVG格式存储以节省字节数量。 - 组件按需加载:通过路由配置实现页面级别的动态导入(`import()`函数),使得用户首次访问时不一次性下载整个应用的所有模块而是仅限于所需的部分。 ```javascript const Home = () => import('@/pages/home/index.vue') ``` - CSS分离:将样式表单独提取出来作为外部链接形式引入而不是内联方式混入HTML文档内部,从而降低初始请求的数据传输负担。 ##### 3. 合理规划业务架构设计 - 尽可能把不常变动的功能点拆分成独立子包发布,这样即使更新也不会影响核心体验区间的性能表现。 - 避免过度封装公共方法造成重复引用相同功能的现象发生,提倡遵循单一职责原则重构大型对象或函数体内的操作集合。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值