dcloudio/uni-app

鸿蒙NEXT vue3上传环境的警告会直接闪退

Closed this issue · 1 comments

发行方式

App

具体平台

手机鸿蒙NEXT5.1.1
Uniapp APP
"@dcloudio/uni-app-harmony": "3.0.0-alpha-4080120250919001",
鸿蒙小程序SDK
@dcloudio/uni-app-runtime(V4.81.2025091901)
当vue3生成环境产生warn信息时,APP直接闪退了

开发环境

macOS

项目创建方式

CLI命令行

依赖版本

手机鸿蒙NEXT5.1.1
Uniapp APP
"@dcloudio/uni-app-harmony": "3.0.0-alpha-4080120250919001",
鸿蒙小程序SDK
@dcloudio/uni-app-runtime(V4.81.2025091901)

问题描述

1、当vue3生成环境产生,产生一些warn信息时,APP直接闪退了
2、添加app.config.warnHandler = () => {} 禁止产生警告信息,不会闪退

重现步骤

1、当vue3生成环境产生,产生一些warn信息时,APP直接闪退了
2、添加app.config.warnHandler = () => {} 禁止产生警告信息,不会闪退
3、可能产生问题的代码,根据调试走到
fn2(...batch.map(_toString));是闪退的,可能是_toString的问题,也可能是fn2函数的问题

// packages/uni-framework/src/console.ts
function _toString(a) {
try {
let _a, _b;
return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
} catch (error) {
return String(a);
}
}
function wrap(key) {
const fn1 = console[key];
let needBreak = false;
return function(...args) {
const fn2 = uniconsole[key];
fn1(...args);
if (needBreak) {
return;
}
needBreak = true;
const argsLimit = 99;
const batchCount = Math.ceil(args.length / argsLimit);
for (let i = 0; i < batchCount; i++) {
const start = i * argsLimit;
const end = start + argsLimit;
const batch = args.slice(start, end);
try {
fn2(...batch.map(_toString));
} catch (error) {
}
}
needBreak = false;
};
}

期望行为

搜索

实际行为

No response

截图或录屏

No response

提 bug 请提供复现工程,并说明 HBuilderX 版本,具体操作步骤