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

embedded/2024/11/20 3:31:21/

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

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

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

	//主包的页面"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组件进行加载。

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

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


//文件目录: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组件。就需要配置一下。

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

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


http://www.ppmy.cn/embedded/138954.html

相关文章

解决在使用JetBrains IDEs(如PyCharm或CLion)进行GitHub项目分享时,用户经常遇到“此站点的访问已被限制”的问题

解决在使用JetBrains IDEs(如PyCharm或CLion)进行GitHub项目分享时,用户经常遇到“此站点的访问已被限制”的问题 在使用JetBrains IDEs(如PyCharm或CLion)进行GitHub项目分享时,用户经常遇到“此站点的访…

IT行业现状与未来趋势

IT行业现状与未来趋势 在这个快速变化的世界里,IT行业的风向标总是引人注目。就像海面上的潮汐,科技带来的变化时常令人惊叹。你是否曾想过,这些变化背后隐藏着怎样的力量?让我们一起探讨当前IT行业的现状与未来趋势,…

计算机视觉:赋予机器“看”的能力

引言 计算机视觉是一门科学,它试图使计算机能够像人类一样解释和理解视觉信息。这个领域结合了人工智能、机器学习、计算机科学和认知心理学等多个学科的知识,旨在创建能够“看”和“理解”图像和视频的系统。随着技术的进步,计算机视觉已经…

Python+7z.exe实现自动化压缩与解压

简介 我们将使用subprocess模块来调用系统命令行工具7z.exe,实现文件的自动压缩与解压。 环境准备 在开始之前,请确保您的计算机上安装了7z.exe工具。7z.exe是7-Zip程序的一部分,可以从7-Zip官方网站下载。安装完成后,请确保7z.e…

Vue实现消息提示功能

1.首先要先定义消息提示的组件,在这个组件中需要实现自动关闭的功能(看自己的爱好呗),并且设置自己喜欢的样式,vue中还有可以自定义进场和退场动画的样式(就是那个v-enter-active和v-leave-active&#xff…

常见网络厂商设备默认用户名/密码大全

常见网络厂商的默认用户名/密码 01 思科 (Cisco) 设备类型:路由器、交换机、防火墙、无线控制器 默认用户名:cisco 默认密码:cisco 设备类型:网管型交换机 默认用户名:admin 默认密码:admin 02 华…

鸿蒙HarmonyOS 地图定位到当前位置 site查询等操作

应用服务Map使用 地图定位 地点查询及导航 周边查询 点位标记定义等 地图定位 前提地图已经能正常显示,若不能显示请大家参考之前的那篇如何显示地图的博文 地图相关的api 位置效果图: module.json5配置权限 "requestPermissions": [{&…

Ubuntu24.04上安装和配置MySQL8.4.3

Ubuntu24.04上安装和配置MySQL8.4.3 #MySQL 的 APT 配置工具包:https://repo.mysql.com/,最新版的就是这个了 wget https://repo.mysql.com/mysql-apt-config_0.8.33-1_all.deb#输入这条命令,然后选择OK sudo dpkg -i mysql-apt-config_0.8.33-1_all.de…