1***@qq.com
1***@qq.com
  • 发布:2026-10-31 14:15
  • 更新:2026-10-31 16:31
  • 阅读:164

【报Bug】uni-app x 蒸汽模式编译 H5 回归:内置组件解析失败 + uni.showToast 崩溃(5.34 回归,5.26 正常)

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: HBuilderX 5.34.2026102909(macOS)

HBuilderX类型: 正式

HBuilderX版本号: 5.34

浏览器平台: Chrome

浏览器版本: 版本 156.0.8078.74(正式版本) (arm64)

项目创建方式: HBuilderX

操作步骤:

新建 uni-app x 项目,manifest 可视化界面勾选蒸汽模式(或使用已有蒸汽模式项目)

页面中写:

<scroll-view scroll-y style="height: 200px;">
<view v-for="i in 100" :key="i">row {{ i }}</view>
</scroll-view>
并在 onMounted 中调用 uni.showToast({ title: 'test', icon: 'none', duration: 60000 })

运行 → 运行到浏览器 → Chrome

预期结果:

scroll-view 正常编译、渲染为内置滚动组件,长内容可滚动

toast 正常弹出

控制台无上述报错

实际结果:

控制台出现 [Vue warn]: Failed to resolve component: v-uni-scroll-view(渲染层)

调用 showToast 时连续抛出 TypeError: 'set' on proxy: trap returned falsish for property '_ctx',伴随 Unhandled error during execution of setup/render function、Active effect was not restored correctly 等告警,toast 不出现

bug描述:

uni-app x 项目开启蒸汽模式(manifest.json uni-app-x.vapor: true,项目根目录存在 .vapor 标记文件),运行到 H5(浏览器)时控制台出现两类报错,且都是功能性 bug 而非单纯告警:

1、页面中所有内置组件(如 scroll-view)报 [Vue warn]: Failed to resolve component: v-uni-scroll-view。蒸汽模式编译下,内置组件被编译为 createComponent("v-uni-scroll-view", ...) 形式的字符串标签,运行时组件注册表中不存在该 key,解析回退为原生未知标签,scroll-view 退化为普通元素、滚动能力失效。

2、调用 uni.showToast 时控制台抛 Uncaught (in promise) TypeError: 'set' on proxy: trap returned falsish for property '_ctx'(堆栈位于 uni-h5 的 Toast 组件挂载、vue.runtime 的 normalizeChildren 处),toast 完全不渲染。

2026-10-31 14:15 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

感谢提交这份 bug 反馈。以官方视角对这份反馈做一次评审,总体结论:反馈方向有效、要素基本齐全,属于值得受理的回归类问题线索,但有几处信息需要补充或澄清,以便官方复现与定位。

一、反馈完整性评审

  1. 标题:清晰。点明了产品线(uni-app x)、模式(蒸汽模式)、目标平台(H5)、两类故障(内置组件解析失败、uni.showToast 崩溃)以及版本回归区间(5.34 回归、5.26 正常)。版本对照是回归类反馈最关键的信息,这点写得很好。

  2. 问题描述:详细。两类报错均给出了具体错误文本、堆栈位置(uni-h5 的 Toast 组件挂载、vue.runtime 的 normalizeChildren)和功能影响(scroll-view 退化为普通元素、toast 不渲染),并附上了对编译产物(createComponent("v-uni-scroll-view", ...))的观察,对官方定位有帮助。

  3. 代码示例:基本可用,但还不是"开箱即跑"的完整页面。目前只有 template 片段和"onMounted 中调用 uni.showToast"的文字描述,建议补全一个最小化的完整 .uvue 页面(template + script setup 全部内容,含 showToast 的完整调用参数),让官方拿到后无需调整即可运行复现。

  4. 复现步骤:清晰。从新建项目、manifest 勾选蒸汽模式(含 .vapor 标记文件说明)到运行到 Chrome,路径完整。建议补充:浏览器及具体版本号、是 HBuilderX 内置浏览器还是外部 Chrome、多次新建项目/多次运行是否均稳定复现。

  5. 预期结果:合理。蒸汽模式编译到 Web 时仍以 VDOM 方式运行,scroll-view 等内置组件应正常解析渲染并具备滚动能力,uni.showToast 在 Web 端应正常弹出,这些预期均符合产品预期行为。

  6. 实际结果:描述具体,包含报错、伴随告警(Unhandled error during execution of setup/render function、Active effect was not restored correctly)和功能失效表现,不像误报。需要说明的是,"Active effect was not restored correctly" 这条 Vue 内部告警曾在其他蒸汽模式问题(App-Android 端白屏问题,见 ISSUE 系统)中出现过,但那是不同平台、不同现象的问题,不能直接套用到本例,仅供官方排查时参考。

  7. 分类信息:基本完整(问题分类 uni-app x、平台分类 web、HBuilderX 5.34 正式版),但有一处需要澄清:"PC开发环境操作系统版本号"填写的是 "HBuilderX 5.34.2026102909(macOS)",与前面"Windows"矛盾——请确认开发机到底是 Windows 还是 macOS,并将该字段改为操作系统版本号,HBuilderX 完整版本号放在对应字段即可。另外建议补充浏览器版本。

另外提示:我无法识别附件,如需补充工程、截图或完整日志,请直接以文字/代码形式贴在反馈中。

二、bug 是否成立的分析

  1. 按官方模式设计,蒸汽模式在 App 端(Android/iOS/鸿蒙)使用新的原生渲染系统,编译到 Web 和小程序时仍以 VDOM 方式运行。因此 Web 端开启蒸汽模式后,内置组件应正常注册解析、uni.showToast 应正常工作。你描述的"内置组件编译为字符串标签但运行时注册表缺失该 key"与"toast 挂载时 proxy set '_ctx' 报错",均与预期行为不符,属于编译器/运行时层面的异常,反馈具备成立的基础。

  2. 我在现有知识库(含 issue 系统、发版说明)中暂未检索到与"蒸汽模式 H5 内置组件解析失败"或"uni.showToast 报 '_ctx' proxy 错误"直接相同的已知问题记录,无法确认官方是否已收录该问题,最终是否成立需官方在 issue 系统中按你的步骤复现确认。

  3. Web 平台确实存在"版本改动引发回归、后续版本修复"的先例:例如 5.26 alpha 发版说明记录了"Web平台 修复 5.25版本引发的 仅包含一个页面的项目运行告警"(发版说明);issue 系统中也有回归类问题被定位为"之前的 issue 引发"并修复发版的案例(如 vue-i18n 报错,最终定位为调整内部包解析逻辑时误改了相关解析逻辑,已修复发版)。你报告的"5.26 正常、5.34 回归"符合这类回归特征,值得按回归问题受理排查。

  4. 一条可供官方排查参考的线索:5.32 alpha 发版说明中 Web 平台 toast 有过改动("Web平台 新增 API toast 允许设置是否与页面绑定",发版说明),时间上落在你所说的回归区间(5.26 之后)内,与 toast 崩溃问题可能相关。但这仅是时间线上的线索,不能据此确认因果,需官方核实。

三、后续建议

  1. 请将本反馈提交到官方 issue 系统(https://issues.dcloud.net.cn/ ),按模板填写并附上补全后的最小复现工程与完整控制台日志,便于官方复现、定级与跟踪。回归类问题请在 issue 中明确保留"正常版本 5.26 / 异常版本 5.34.2026102909"的对照信息。
  2. 提交前建议补充:澄清开发操作系统(Windows/macOS)、浏览器及版本、完整最小 .uvue 页面代码、manifest.json 中蒸汽模式相关配置原文、是否稳定复现。
  3. 现有资料中暂无针对该问题的官方规避方案,我不做未经确认的猜测性建议;你已验证 5.26 正常,这一版本对照信息对官方锁定回归区间很有价值,请在 issue 中一并写明。

再次感谢反馈,这类带版本对照、编译产物分析和完整报错堆栈的反馈,对定位回归问题非常有价值。

内容为 AI 生成,仅供参考
1***@qq.com

1***@qq.com (作者)

我uniappX的项目是5.26建立的,然后做了升级动作到5.34,我重新测试了一下,在5.34进行新建项目并按照上述内容进行回归测试发现没问题,怀疑是5.26uniappx新建项目与5.34有内部实现差异导致的,接下来我计划将5.26项目直接重新迁移至5.34 uniappx的空壳项目中试下。

DCloud_heavensoft

DCloud_heavensoft

项目根目录存在 .vapor 标记文件,把这个文件删了。
这是一个实验性标记文件,Web 端蒸汽模式并没有正式对外发布,删掉它,Web 平台会以之前的 vdom 模式运行。

要回复问题请先登录或注册