使用uniapp开发微信小程序使用uni_modules导致主包文件过大,无法发布的解决方法

在使用uniapp开发微信小程序时候,过多的引入uni_modules的组件库,会导致主包文件过大,导致无法上传微信小程序,主包要求大小不超过1.5MB.分包大小每个不能超过2M。

解决方法:分包。

1.对每个除了主页面navbar的页面进行分包操作。

在page.json文件进行分包配置。分包代码例子:

javascript 复制代码
	//主包的页面
    "pages": [{
            "path": "packages-main/tab-bar-pages/home/index",
            "style": {
                "navigationBarTitleText": "主页",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom",
            }
        },
    ],
    //这样我们就可以把login页面和register页面进行分包处理。
    "subPackages": [
        {
            "root": "packages-sub/login/",
            "name": "login",
            "pages": [{
                    "path": "login",//指代login.vue文件
                }
            ]
        },
                {
            "root": "packages-sub/register/",
            "name": "register",
            "pages": [{
                    "path": "register",
                }
            ]
        },
	]

然后就可以在微信小程序的代码依赖分析中找到分包的效果。

2.对uni_modules中引入的模块进行代码转移和分包处理。

如果我们把uni_modules代码直接转移到分包文件夹,打包完成后,还是会把代码打包入主包文件中,需要我们手动把组件分包引入。但是需要注意的是,对uni_modeluse会导致组件互相引入的时候出现循环报错,需要我们一个一个解决。另外在引入的页面也会出现无法找到组件的问题,需要我们对page.json文件增加引入入口。

1.uniapp使用easycom属性在page.json文件内把移动到分包内的ui组件进行加载。

javascript 复制代码
    "easycom": {
        "autoscan": true,
        "custom": {
            "^uni-(.*)": "@/packages-sub/components/uni-$1/components/uni-$1/uni-$1.vue",
    },
    "pages":.......

2.对uni_modules文件进行分包处理,尽量挪动组件互相引用少的。

javascript 复制代码
//文件目录:packages-sub\components\uni-popup\components\uni-popup\uni-popup.vue
 "subPackages": [
        {
            "root": "packages-sub/components/uni-popup/",
            "name": "uni-popup",
            "pages": [{
                    "path": "components/uni-popup/uni-popup"
                }
            ]
        },
	]

3.对使用到的页面进行页面组件引入配置。

同样打开page.json文件,如在登陆页面使用到了uni-popup组件。就需要配置一下。

javascript 复制代码
        {
            "root": "packages-sub/login/",
            "name": "login",
            "pages": [{
                    "path": "login",
                    "style": {
                        "navigationBarTitleText": "登录",
                        "enablePullDownRefresh": false,
                        "componentPlaceholder":{
                            "uni-popup":"view",  //view在这里起到一个占位符的作用,这样可以解决找不到引入文件的问题。       
                        }
                    }
                }
            ]
        },

以上方法可以解决uni_modules的分包问题。当然我们在进行微信小程序开发时,在开发之初就要处理好代码的分包问题,避免在发版时无法发布代码产生问题。另外在进行组件开发时最好使用原生微信小程序的组件,或者自己开发。插件用时爽,分包的时候问题有点难。

相关推荐
清风絮柳8 小时前
65.少儿英语微信小程序
vue.js·spring boot·微信小程序·小程序·毕业设计
xiaoliuliu1234511 小时前
Notepad++ 8.6 文本编辑器安装教程:详细步骤+自定义路径+桌面快捷方式
notepad++
tjsoft15 小时前
unigui开发微信小程序
微信小程序·小程序
多年小白2 天前
2026年AI智能体“三国杀“:腾讯龙虾矩阵、阿里千问生态与字节豆包的技术架构全解析
网络·人工智能·科技·矩阵·notepad++
叱咤少帅(少帅)2 天前
Uniapp开发pc端,小程序和APK
小程序·uni-app
2501_915918412 天前
iOS性能测试工具 Instruments、Keymob的使用方法 不局限 FPS
android·ios·小程序·https·uni-app·iphone·webview
苏灵凯3 天前
智能环境监测终端全栈设计:从单片机到微信小程序,手把手搞定!
单片机·嵌入式硬件·mcu·物联网·微信小程序·小程序·蓝牙模块
nhc0883 天前
贵阳纳海川科技有限公司・货运物流行业解决方案
科技·微信小程序·小程序·软件开发·小程序开发
admin and root3 天前
AWS S3 对象存储攻防&云安全之OSS存储桶漏洞
微信小程序·小程序·渗透测试·云计算·aws·src·攻防演练
2501_915918413 天前
iOS 混淆流程 提升 IPA 分析难度 实现 IPA 深度加固
android·ios·小程序·https·uni-app·iphone·webview