uni-app 微信小程序分包操作不成功
uni-app 微信小程序分包操作不成功
操作步骤:
按照官方文档的要求准备好,正常打包即可
预期结果:
微信小程序打包后,以分包的形式呈现
实际结果:
分包预载配置报错,并且app.json实际分包结果为空。如果补配置分包预载,项目能运行起来,但是app.json实际分包结果为空
bug描述:
我按照官方文档的要求一一填好,包含:
- manifest.json中给mp-weixin新增"optimization" : {“subPackages” : true};
- 项目根目录下建立分包的文件夹:package-sszp,和页面home的文件夹;
- pages.json中新增“subPackages”数组内容,按照rout和pages的要求填写;
- 打包。打包后查看app.json文件,发现有分包标识:subPackages,但是里面是空的;
- 微信开发工具直接报错分包页面路径未找到,项目无法启动 注:不采用分包模式,项目可以正常打包的;即使采用分包模式,不配置分包预载“preloadRule”,也能完成打包,但是没有分包效果,分包内的页面是空。 附件里我展示关键步骤的截图:

| 信息类别 | 信息详情 |
|---|---|
| 产品分类 | uniapp/小程序/微信 |
| PC开发环境 | Mac |
| PC开发环境版本 | macOS Sonoma 14.2.1 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 4.08 |
| 工具版本号 | 1.06.2401020 |
| 基础库版本号 | 3.4.0 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 微信小程序分包操作不成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app 微信小程序分包操作不成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,微信小程序分包操作不成功可能有多种原因。以下是一些常见的排查步骤和解决方案:
1. 检查分包配置
确保在 pages.json 中正确配置了分包。例如:
{
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
}
],
"subPackages": [
{
"root": "packageA",
"pages": [
{
"path": "page1",
"style": {
"navigationBarTitleText": "分包A页面1"
}
}
]
}
]
}
root是分包的根目录,pages是分包中的页面路径。- 确保分包的路径和文件夹结构正确。
2. 检查文件路径
确保分包的文件夹和页面文件路径正确。例如,packageA/page1 应该对应项目中的 packageA/page1.vue 文件。
3. 分包大小限制
微信小程序对分包大小有限制:
- 整个小程序所有分包大小不超过
20M。 - 单个分包/主包大小不能超过
2M。
如果分包过大,可能会导致分包失败。可以通过优化代码、图片等方式减少分包大小。
4. 分包预加载
如果需要预加载分包,可以在 pages.json 中配置 preloadRule:
{
"preloadRule": {
"pages/index/index": {
"network": "all",
"packages": ["packageA"]
}
}
}
5. 清除缓存并重新编译
有时候,微信开发者工具缓存可能会导致问题。尝试以下步骤:
- 清除微信开发者工具的缓存。
- 重新编译项目。
6. 检查开发者工具版本
确保微信开发者工具是最新版本,旧版本可能存在兼容性问题。
7. 检查 manifest.json 配置
在 manifest.json 中检查微信小程序的配置,确保没有冲突或错误的配置项。
8. 查看控制台错误信息
在微信开发者工具中,查看控制台的错误信息,可能会提供有关分包失败的详细原因。
9. 检查 uni-app 版本
确保你使用的 uni-app 版本支持分包功能。如果版本过旧,可能会存在兼容性问题。
10. 手动配置 project.config.json
在某些情况下,可能需要手动配置 project.config.json 文件,确保分包路径和配置正确。
{
"miniprogramRoot": "dist/dev/mp-weixin",
"setting": {
"urlCheck": false,
"es6": true,
"postcss": true,
"minified": true
}
}

