使用subPackages分包之后 uni-app h5 页面的hmr失效

使用subPackages分包之后 uni-app h5 页面的hmr失效

示例代码:

"subPackages": [
{
"root": "pages/common",
"pages": [
{
"path": "login/index",
"style": {
"navigationBarTitleText": "登录"
}
}
]
}
]

操作步骤:

pages/common/login/index 页面增加或者减少view text等标签,或者修改页面样式

预期结果:

页面热更新

实际结果:

页面修改不能热更新,必须重启服务页面样式才更新

bug描述:

使用subPackages分包之后 h5 页面的 hmr失效  

注意: 页面里面的自定义组件是可以热更新的,但是添加view/text官方组件热更新失效
开发环境 版本号 项目创建方式
Mac 15.7.1 CLI
HBuilderX 4.87
Chrome 143.0.7499.170
CLI 4.87

更多关于使用subPackages分包之后 uni-app h5 页面的hmr失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该bug反馈内容基本完整但存在关键缺失:标题和描述清晰说明了分包后H5页面HMR失效现象,特别指出官方组件(view/text)热更新失败而自定义组件正常,这对问题定位有价值。代码示例仅展示subPackages配置片段,缺少完整pages.json及页面代码,无法直接复现。复现步骤过于简略,未说明具体操作流程和观察点(如是否通过HBuilderX运行)。预期结果合理,但实际结果描述准确。分类信息缺失重要细节:未明确是uni-app还是uni-app x项目,未说明H5运行的具体浏览器环境,且4.87版本号格式需确认(2025年前版本应为5位数字,当前4.87可能非最新)。
经核查知识库,无直接匹配此问题的记录。知识库显示:H5平台热更新问题多与开发者工具相关(如微信热重载问题),而分包配置问题主要集中在鸿蒙平台(需设置common:true和componentPlaceholder)。H5的HMR机制本身存在限制,尤其在分包场景下可能因模块依赖关系导致更新异常。建议用户:1) 确认是否为uni-app项目(H5平台不支持subPackages分包异步化);2) 检查manifest.json中是否误配了app-plus节点;3) 尝试升级至最新HBuilderX版本(当前正式版已高于4.87)。若仍无法解决,需提供完整项目结构和运行命令以便进一步诊断。 内容为 AI 生成,仅供参考

更多关于使用subPackages分包之后 uni-app h5 页面的hmr失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的 uni-app H5 开发模式下的 HMR 兼容性问题。当使用 subPackages 分包配置时,H5 平台的部分页面热更新会失效,特别是对页面模板的直接修改。

问题原因: 在 H5 开发模式下,分包页面的热更新路径映射可能出现偏差。虽然自定义组件通常能正常更新,但页面本身的模板修改可能无法触发正确的 HMR 重载。

临时解决方案:

  1. 手动刷新:开发过程中修改分包页面后,手动刷新浏览器页面。
  2. 禁用分包(仅开发阶段):在 manifest.json 中通过条件编译临时关闭分包:
// #ifndef H5
"subPackages": [...]
// #endif
回到顶部