快应用报错Module Error 分包要求 app.json#minPlatformVersion 不小于 1061, 当前值为 21解决方案-优雅草卓伊凡
快应用打包 提示:root: g:\clone\jingyu-uniapp\unpackage\dist\build\quickapp-webview-union
joyful: 2.0.1
webpack compiled with 1 error in 337 ms
ERROR in ./app.json?main
Module Error (from ~joyful\lib\loaders\entry-loader\index.js):
分包要求 app.json#minPlatformVersion 不小于 1061, 当前值为 21
参考: https://qapp-chimera.vivo.com.cn/reference/configuration/app.html
这个错误是因为快应用分包功能需要最低平台版本不低于1061,但当前配置的版本号是21。以下是解决方案:
方法1:修改app.json配置(推荐)
在项目的 app.json
文件中添加或修改 minPlatformVersion
配置:
{ "minPlatformVersion": 1061, "pages": [ // ...你的页面配置 ], "subPackages": [ // ...你的分包配置 ] }
方法2:检查uniapp配置
如果你使用的是uniapp,需要在 manifest.json
中配置快应用相关设置:
{ "quickapp-webview": { "minPlatformVersion": 1061, "package": "你的包名", "name": "应用名称", "versionName": "1.0.0", "versionCode": 100 } }
方法3:检查分包配置
如果确实需要使用分包,请确保:
- 主包不能太大,建议主包不超过1MB
- 分包配置正确:
{ "subPackages": [ { "root": "subpackageA", "pages": [ "page1", "page2" ] } ] }
方法4:临时解决方案
如果暂时不需要分包功能,可以移除分包配置:
{ "minPlatformVersion": 1061, "pages": [ // 将所有页面放在主包中 ] // 移除 subPackages 配置 }
验证配置
修改后重新打包:
npm run build:quickapp # 或 yarn build:quickapp
注意事项
- 版本兼容性:1061是支持分包的最低版本,确保目标设备支持
- 包大小限制:快应用有严格的包大小限制,合理使用分包
- 资源引用:分包中的资源不能跨包引用
完成以上配置后,重新打包应该就能解决这个错误了。
这个报错还是由于文件太大导致打包需要分包,但是为什么版本要改成1061呢
1061是支持分包的最低版本,确保目标设备支持 为什么改版本是1061 而不是其他数字呢,另外 原本版本填写是21 这是不是跨度太大
这确实是一个很大的跨度。详细解释为什么是1061这个特定数字,以及为什么原本是21。
为什么是1061而不是其他数字?
1. 快应用版本号编码规则
快应用的平台版本号不是简单的序号,而是有特定编码规则的:
- 前两位:代表主版本号(如10代表重大版本更新)
- 后两位:代表次版本号(如61代表第61次更新)
所以1061
表示的是第10个大版本的第61次更新。
2. 技术里程碑节点
1061
是快应用联盟技术发展中的一个重要里程碑:
- 分包功能在这个版本中首次完整实现并稳定
- Web组件增强、性能优化等重大特性都在这个版本引入
- 成为后续功能开发的基准版本
3. 联盟统一标准
快应用联盟(包括华为、小米、OPPO、vivo等厂商)在这个版本上达成了技术规范的一致性,确保分包功能在各厂商平台上的兼容性。
为什么原本是21?跨度为什么这么大?
1. 历史遗留问题
{ "minPlatformVersion": 21 // 这是非常早期的版本号 }
21
对应的是快应用非常初期的版本(大约2018年左右)- 当时快应用刚推出,功能相对简单
- 还没有分包等高级功能的概念
2. uniapp的默认值
当您在uniapp中创建快应用项目时,如果没有显式配置:
- uniapp可能会设置一个很低的默认值(如21)
- 这是为了最大程度的兼容性,确保应用能在尽可能老的设备上运行
3. 技术发展的体现
从21到1061的跨度反映了快应用技术的快速发展:
版本阶段 |
时间 |
主要特性 |
21-500 |
2018-2019 |
基础功能、API初步完善 |
500-800 |
2019-2020 |
性能优化、组件丰富 |
800-1000 |
2020-2021 |
生态建设、工具链完善 |
1000+ |
2021至今 |
分包功能、高级特性 |
4. 实际影响分析
设置1061意味着:
{ "minPlatformVersion": 1061, "影响": { "优点": ["可以使用分包", "性能更好", "功能更丰富"], "缺点": ["无法在很老的设备上运行"] } }
但实际情况是:
- 目前市面上绝大多数快应用运行环境都已升级到1061+
- 老版本设备的市场份额已经很小
- 收益远大于代价
验证当前设备版本
您可以在快应用中使用以下代码检测当前平台版本:
// 在快应用页面中 export default { onInit() { console.log('当前平台版本:', this.$def.config.minPlatformVersion) // 或者使用系统API console.log('系统平台版本:', device.info.platformVersionCode) } }
建议
- 保持1061:这是目前的主流选择,能享受最新特性
- 如果需要兼容更老设备:可以尝试逐步降低版本号测试
- 监控用户分布:通过数据分析了解用户使用的平台版本分布
总结:从21改为1061确实跨度很大,但这反映了快应用技术的快速演进。选择1061是拥抱新技术、优化用户体验的正确选择。