在 uni-app 的 uniAdmin 项目中,JS 异常被静默处理是常见问题。这通常由以下原因导致:
-
框架错误拦截机制:uni-app 在部分环境下会封装全局错误捕获,导致控制台不显示未捕获异常。
-
开发环境配置差异:检查是否启用了 debug 模式,在 manifest.json 中确认以下配置:
{
"h5": {
"devServer": { "disableHostCheck": true }
},
"app-plus": {
"debug": true
}
}
- Vue 错误处理:uniAdmin 基于 Vue,可能使用了
Vue.config.errorHandler 拦截了错误。可在 main.js 中添加:
Vue.config.errorHandler = function (err) {
console.error('Vue error:', err);
};
- 异步代码包装:若代码被包裹在 Promise 或异步函数中,需使用 catch 捕获:
test().catch(err => console.error(err));
建议直接使用 try-catch 块显式捕获错误:
test(){
try {
let a = b.c;
console.log(a);
} catch (err) {
console.error('Error:', err);
}
}