Skip to content

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

@bluepeople1

Description

@bluepeople1

发行方式

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions