风若云风
风若云风
  • 发布:2026-10-14 09:37
  • 更新:2026-10-14 09:59
  • 阅读:35

【报Bug】HBuilderX版本Alpha版最新版运行小程序发行版掉丢失配置

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 专业版 25H2

HBuilderX类型: Alpha

HBuilderX版本号: 5.31

第三方开发者工具版本号: RC 2.02.2607171

基础库版本号: 3.17.3

项目创建方式: HBuilderX

操作步骤:

发行 → 微信小程序-ui.showConfirm确认按钮

预期结果:

ui.showConfirm 为什么所有的ui.showConfirm确认按钮字体颜色是白色的,

实际结果:

ui.showConfirm确认按钮字体颜色变成黑色的了,在小程序开发版或安卓或鸿蒙上都是正常展示出白色

bug描述:

自定义 vite transform 改写 cool-ui .uvue 会导致发行期 easycom 绑定丢失;发行小程序的主包比上一个版本的小100kb,但是丢失了部分内容导致项目部分样式失效,回退到上一个版本就是正常加载渲染的

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

Ask小助手

收到该反馈,以下从 DCloud 官方视角对本条 bug 反馈进行评审:

一、反馈完整性评审

  1. 标题与描述:标题“运行小程序发行版掉丢失配置”表述不够清晰。描述中提到“自定义 vite transform 改写 cool-ui .uvue 导致发行期 easycom 绑定丢失”“主包比上一版本小 100kb”,但缺少关键信息:

    • 自定义 vite transform 的具体代码未提供,无法判断改写逻辑是否会影响编译产物的 easycom 绑定;
    • cool-ui 插件的名称、版本号未提供;
    • “丢失了部分内容”具体指哪些内容(样式、组件、配置)未列明,仅凭主包体积减小 100kb 无法定位。
  2. 代码示例:完全缺失。当前反馈中没有可直接运行的示例工程或代码片段,官方无法在本地复现。

  3. 复现步骤:“发行 → 微信小程序-ui.showConfirm确认按钮”描述过于简略,未说明项目如何搭建、transform 如何配置、在哪个页面触发,按此步骤无法复现,请补充完整操作路径。

  4. 预期结果:“ui.showConfirm 为什么所有的ui.showConfirm确认按钮字体颜色是白色的”是疑问句而非结果陈述,建议改为明确描述,例如“发行后的微信小程序中 ui.showConfirm 确认按钮字体颜色应为白色”,并说明该预期的依据(如 cool-ui 文档或源码中按钮颜色的默认值)。

  5. 实际结果:相对清晰,指出仅发行版小程序中按钮颜色变黑,而小程序开发版、安卓、鸿蒙端均为白色。这一“仅发行构建异常”的对比信息对排查有价值,建议保留,并补充发行产物与开发产物的具体差异内容。

  6. 分类信息:缺少以下内容,请补充:

    • 项目类型(描述中出现 .uvue,请确认是 uni-app x 项目还是 uni-app 项目);
    • Vue 版本;
    • 手机 OS 平台、系统版本、厂商及机型(用于对照安卓端表现);
    • 微信开发者工具版本号、微信基础库版本号;
    • cool-ui 插件版本号。

另外提示:我无法识别附件,相关代码、配置请直接以文本形式贴在反馈正文中。

二、bug 是否成立的初步分析

  1. 在现有知识库与官方文档中,未检索到 HBuilderX Alpha 5.31 发行微信小程序会出现“easycom 绑定丢失/发行产物配置丢失”的已知问题记录,暂时无法确认这是已知的编译器缺陷。

  2. ui.showConfirm 并非 uni-app/uni-app x 官方 API(官方模态弹窗 API 为 uni.showModal,文档见 uni.showModal,其确认按钮颜色可通过 confirmColor 配置,微信小程序平台默认为 #576B95)。从描述看 ui.showConfirm 应来自 cool-ui 组件库的封装,其按钮颜色行为取决于该组件自身的实现,知识库中未收录 cool-ui 及 ui.showConfirm 的相关说明,无法对其默认颜色作官方判断。

  3. 反馈中明确提到使用了“自定义 vite transform 改写 cool-ui .uvue”,这属于对编译流程的自定义介入。发行构建与开发构建在处理流程上存在差异,当前信息不足以判定问题出在 HBuilderX 编译器本身,还是自定义 transform 在发行模式下的处理方式所致,需补充 transform 代码与最小复现工程后才能定性。

综上,该反馈目前信息不完整、无法复现,暂不能确认 bug 成立。请补充上述信息(尤其是自定义 vite transform 代码、cool-ui 版本、可运行的最小示例及明确复现步骤)后完善反馈,便于官方定位排查。

内容为 AI 生成,仅供参考
风若云风

风若云风 (作者)

标题:uni-app x 发行微信小程序时 cool-ui 组件样式异常(ui.showConfirm 确认按钮文字由白变黑),同一代码回退 HBuilderX 上一版 alpha 即正常

一、环境信息 项 值
项目类型 uni-app x(uvue 页面;manifest.json 含 "uni-app-x": { "styleIsolationVersion": "2" }),非 uni-app 项目
Vue 版本 3(manifest.json "vueVersion": "3",依赖 vue@^3.5.13)
出问题的 HBuilderX 5.31.2026093020-alpha
回退后正常的 HBuilderX 5.26.2026091402-alpha
cool-ui 插件 @cool-vue/unix@1.1.0-beta.6,组件位于 uni_modules/cool-ui
微信开发者工具版本 【RC 2.02.2607171】
微信基础库版本 【3.17.3】(工具生成的 project.config.json 中 libVersion 为空,即“最新”)
对照机型 Android:【模拟器】;鸿蒙:【模拟器】
appid uni __UNI__E236092 / 微信 wx624d3130cab10fc2

二、问题现象
同一套代码、同一台电脑,仅切换 HBuilderX 版本即可复现与消除:

  • 新版本 HBuilderX「发行」构建的微信小程序:ui.showConfirm 确认弹窗按钮文字为黑色;
  • 同版本 HBuilderX「运行」的小程序开发版:白色,正常;
  • 同版本 HBuilderX 的 Android、鸿蒙 App 端:白色,正常;
  • 回退 HBuilderX 到上一版 alpha 后重新发行:同一代码恢复正常。

三、复现步骤

  1. 用 HBuilderX 打开本 uni-app x 项目(含 cool-ui 组件);
  2. 发行 → 微信小程序;
  3. 用微信开发者工具打开发行产物,进入任意页面调用 ui.showConfirm("测试");
  4. 观察确认弹窗按钮文字颜色。

四、预期结果
发行后的微信小程序中,ui.showConfirm 确认按钮文字颜色应为白色。
依据:uni_modules/cool-ui/components/cl-button/cl-button.uvue:47 中 <cl-text :color="pt.label?.color ?? textColor">,其 textColor 默认值为 "light"(同文件 :293-298);uni_modules/cool-ui/components/cl-text/cl-text.uvue:174-175 中 case "light" 映射为 ctx.color["surface-50"](#fafafa)。故默认 primary 按钮文字应为白色。

五、实际结果

  • 新版 HBuilderX 发行版微信小程序:确认弹窗按钮文字为黑色,弹窗内该文本样式异常(组件内部文本样式丢失,未发现业务配置文件丢失);
  • 同版本开发版小程序:白色,正常;
  • 同版本 Android / 鸿蒙:白色,正常;
  • 回退 HBuilderX 上一版后发行:白色,正常。

六、自定义 vite 插件说明(应要求提供;已验证与本问题无关)
项目 vite.config.ts 中确有自定义插件 coolUiStyleIsolation,会对 uni_modules/cool-ui/components/** 的 .uvue 的 defineOptions 注入 styleIsolation:

function coolUiStyleIsolation(): Plugin {  
    return {  
        name: "cool-ui-style-isolation",  
        enforce: "pre",  
        transform(code, id) {  
            const normalizedId = id.replace(/\\/g, "/");  

            if (!normalizedId.includes("/uni_modules/cool-ui/components/") || !normalizedId.endsWith(".uvue")) {  
                return null;  
            }  

            if (code.includes("styleIsolation")) {  
                return null;  
            }  

            const nextCode = code.replace(/defineOptions\(\s*\{/, 'defineOptions({\n\tstyleIsolation: "app",');  

            if (nextCode == code) {  
                return null;  
            }  

            return { code: nextCode, map: null };  
        }  
    };  
}

保留或移除该插件,结果不变;问题仅随 HBuilderX 版本变化,故与本插件无关。

七、其它线索

  • 主包体积:新版发行产物较旧版小约 100KB【请确认是否仍可复现】;
  • 可按需提供最小复现工程(新建 uni-app x 项目 + cool-ui,仅保留一个调用 ui.showConfirm 的页面)。

风若云风

风若云风 (作者)

而且鸿蒙运行和打包一直会报错,一直需要打补丁

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