uni-app vue3 使用vite编译到微信小程序端时pages.json不支持preloadRule分包预加载配置项
uni-app vue3 使用vite编译到微信小程序端时pages.json不支持preloadRule分包预加载配置项
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 12.0.1 | HBuilderX |
产品分类:uniapp/小程序/微信
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:Mac Monterey 12.0.1
HBuilderX类型:Alpha
HBuilderX版本号:3.3.0
第三方开发者工具版本号:1.05.2110290
基础库版本号:2.21.0
项目创建方式:HBuilderX
### 示例代码:
```javascript
"preloadRule": {
"pages/home/index": {
"network": "all",
"packages": ["product", "search"]
},
"pages/cart/index": {
"network": "all",
"packages": ["order"]
},
"pages/order/order-preview/index": {
"network": "all",
"packages": ["address"]
},
"pages/my/index": {
"network": "all",
"packages": ["address", "order"]
},
"pages/login/index": {
"network": "all",
"packages": ["user"]
}
},
操作步骤:
- 增加preloadRule配置项编译到微信小程序端
预期结果:
- 微信小程序端没有报错
实际结果:
- 微信小程序端报错app.json文件内容错误
bug描述:
uni-app vue3 vite v2.6.14编译微信小程序端pages.json不支持preloadRule分包预加载配置项 微信开发工具IDE报错 [ app.json 文件内容错误] app.json: [“preloadRule”][“pages/home/index”][“packages”][0]: product/ 未找到 [“preloadRule”][“pages/home/index”][“packages”][1]: search/ 未找到 [“preloadRule”][“pages/cart/index”][“packages”][0]: order/ 未找到 [“preloadRule”][“pages/order/order-preview/index”][“packages”][0]: address/ 未找到 [“preloadRule”][“pages/my/index”][“packages”][0]: address/ 未找到 [“preloadRule”][“pages/my/index”][“packages”][1]: order/ 未找到 [“preloadRule”][“pages/login/index”][“packages”][0]: user/ 未找到 (env: macOS,mp,1.05.2110290; lib: 2.21.0)
更多关于uni-app vue3 使用vite编译到微信小程序端时pages.json不支持preloadRule分包预加载配置项的实战教程也可以访问 https://www.itying.com/category-93-b0.html
“plugins”: {
“tfjsPlugin”: {
“version”: “latest”,
“provider”: “wx6afed118d9e81df9”
}
}
插件配置也不支持
更多关于uni-app vue3 使用vite编译到微信小程序端时pages.json不支持preloadRule分包预加载配置项的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可以更新至最新的HBuilderX Alpha
在 uni-app Vue3 + Vite 环境下,pages.json 中的 preloadRule 配置项确实存在编译到微信小程序时的问题。这是因为 Vite 编译模式下,preloadRule 的配置方式与传统的 Webpack 模式有所不同。
问题原因:
在 Vite 编译模式下,preloadRule 中的 packages 字段需要指定完整的分包路径,而不是简单的分包名称。微信小程序要求 packages 字段的值必须是实际存在的分包路径。
解决方案:
修改 preloadRule 配置,将 packages 中的分包名称改为完整的分包路径:
"preloadRule": {
"pages/home/index": {
"network": "all",
"packages": ["__APP__/product", "__APP__/search"]
},
"pages/cart/index": {
"network": "all",
"packages": ["__APP__/order"]
},
"pages/order/order-preview/index": {
"network": "all",
"packages": ["__APP__/address"]
},
"pages/my/index": {
"network": "all",
"packages": ["__APP__/address", "__APP__/order"]
},
"pages/login/index": {
"network": "all",
"packages": ["__APP__/user"]
}
}

