前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uni-app小程序开发-分包

uni-app小程序开发-分包

作者头像
码客说
发布2024-08-02 11:12:46
870
发布2024-08-02 11:12:46
举报
文章被收录于专栏:码客

前言

小程序的图片类资源放服务器里,然后src放网络路径来显示。

什么时候使用分包

  • 对体积较大的小程序项目,建议使用此功能。
  • 主包只保留最常用的核心页面(首页、tabBar 页面和其它公共资源),将小程序中不经常使用的页面放到多个分包中,启动时只加载主包,使用时按需下载分包,不要一次性下载整个代码包,以提升首页启动速度。
  • 对于经常会访问到的待跳转页面,尽可能将该页面所在的分包配置成分包预下载,以提升页面跳转速度。
  • 如果小程序由不同的团队协作开发,建议使用此功能。

项目下的这些文件夹都会打包到主包中

  • components
  • node_modules
  • pages
  • stores
  • uni_modules
  • App.vue
  • main.js
  • uni.scss

所以,我们要保证主包中的页面尽可能少,尽可能把pages中的页面放在分包中。

vendor.js是打包了公共的js文件,也会放到主包中。

查看分包大小

支付宝小程序分包大小限制:

  • 整个小程序所有分包大小不超过 8MB。
  • 单个分包或主包大小不能超过 2MB。

那么我们怎样查看分包的大小呢。

在支付宝开发者工具的预览界面上面的工具条中有一个查看模拟器包依赖分析的工具,点击打开

会出现类似于这样的界面

我们可以看到每个包的大小,及包中文件夹的大小,方便我们分包。

分包构建大小

分包显示的大小是不包含静态文件的。

分包构建是包含静态文件的。

分包构建的大小不能超过4M。

否则会报错:

查询构建结果持续失败: 轮询构建错误 构建结果校验不通过. 分包(main)大小过大, 实际大小(6873kb)超过(4096kb)限制

所以

小程序的图片类资源放服务器里,然后src放网络路径来显示。

可以在右上角的详情的地方查看

结果如下

分包优化

网址

注意

分包优化和分包是两个概念,不是分包就必须开启分包优化,建议支持分包优化的平台要开启分包优化。 比如支付宝小程序就不支持分包优化,就不用配置分包优化,也是可以分包的。

打开 manifest.json 最后有个源码视图

在对应平台的配置下添加"optimization":{"subPackages":true}开启分包优化

代码语言:javascript
复制
"mp-weixin": {
    "appid": "",
    "setting": {
        "urlCheck": false
    },
    "usingComponents": true,
    "optimization": { "subPackages": true }
},

目前只支持mp-weixinmp-qqmp-baidump-toutiaomp-kuaishou的分包优化。

分包优化具体逻辑:

  • 静态文件:分包下支持 static 等静态资源拷贝,即分包目录内放置的静态资源不会被打包到主包中,也不可在主包中使用。
  • js文件:当某个 js 仅被一个分包引用时,该 js 会被打包到该分包内,否则仍打到主包(即被主包引用,或被超过 1 个分包引用)。
  • 自定义组件:若某个自定义组件仅被一个分包引用时,且未放入到分包内,编译时会输出提示信息。

分包配置

在pages的同级目录创建我们的分包文件夹

代码语言:javascript
复制
pages
pages_a
pages_b
pages_c

pages.json中和pages同级添加配置subPackages

代码语言:javascript
复制
{
    	"subPackages": [
		{
			"root": "pages_a",
			"pages": []
		},
		{
			"root": "pages_b",
			"pages": []
		},
		{
            "root": "pages_c",
			"pages": []
        }
}

假如我们要把下面原来在主包pages下的页面放到分包中

代码语言:javascript
复制
{
    "path": "pages/usercenter/user_info",
    "style": {
        "navigationBarTitleText": "用户详情"
    }
}

分包改为

代码语言:javascript
复制
{
    "subPackages": [{
		"root": "pages_c",
        "pages": [{
            "path": "usercenter/user_info",
            "style": {
                "navigationBarTitleText": "用户详情"
            }
        }]
	}]
}

也就是说

分包中的path会和root中的路径拼接,所以路径中要去掉分包的root。

跳转改为

代码语言:javascript
复制
uni.navigateTo({
    url: '/pages_c/usercenter/user_info'
});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 查看分包大小
  • 分包构建大小
  • 分包优化
  • 分包配置
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档