uni-app小程序主包瘦身指南 – 分包支持uni_modules
大家好,我是 uni-app 的核心开发 笨笨狗吞噬者,欢迎关注我的微信公众号 前端笨笨狗。
背景
不少开发者都遇到过主包体积超出了,把部分组件放在分包 uni_modules 中,但是,打包之后发现 分包的 uni_modules 还是被打包到了主包中,本文来分享下这一问题的解决方案。
配置
分包优化
需要在 mainfest.json 指定小程序节点下添加如下配置,例如:
{
"mp-weixin": {
"optimization": {
"subPackages": true
}
}
}
主分包的 uni_modules
首先,主包的 uni_moudles 要放在主包的根目录下,分包的 uni_moudles 要放在分包的根目录下

然后,在 pages.json 中配置组件 easycom 引入规则,这一步是为了避免同一个组件库被主包分包都使用,出现识别错误的问题,例如,我在 uniappx 项目中使用了 rice-ui 组件库,可以这样配置
{
"easycom": {
"autoscan": true,
"custom": {
"^rice-(.*)": "uni_modules/rice-ui/components/rice-$1/rice-$1.uvue",
"^sub-rice-(.*)": "sub/uni_modules/rice-ui/components/rice-$1/rice-$1.uvue"
}
}
}
这样,分包用组件就写 sub-rice-avatar,主包就是 rice-button,
打包出来的产物类似于

示例项目
测试项目请查看这个链接 https://ask.dcloud.net.cn/article/42385
夜雨聆风