乐于分享
好东西不私藏

uni-app小程序主包瘦身指南 – 分包支持uni_modules

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