uni-app 【报Bug】vue3/vite app.config.warnHandler无效
uni-app 【报Bug】vue3/vite app.config.warnHandler无效
示例代码:
import {
createSSRApp
} from "vue";
import App from "./App.vue";
export function createApp() {
const app = createSSRApp(App);
app.config.errorHandler = (err, vm, info) => {
console.log('error---------', err)
}
app.config.warnHandler = function(msg, vm, trace){
console.log('warning-----------------')
}
return {
app
}
}
操作步骤:
app.config.warnHandler = function(msg, vm, trace){
console.log('warning-----------------')
}
预期结果:
warning-----------------
实际结果:
[Vue warn]: Invalid prop: type check failed for prop "isBack". Expected Boolean | String, got Array
bug描述:
vue3/vite
app.config.warnHandler不生效
| 信息类别 | 详细信息 |
|---|---|
| 产品分类 | uniapp/H5 |
| PC开发环境 | Windows |
| 操作系统版本 | uos21.2 64位 |
| 浏览器平台 | Chrome |
| 浏览器版本 | 版本 99.0.4844.84(正式版本) (64 位) |
| 项目创建方式 | CLI |
| CLI版本号 | @vue/cli 4.5.17 |
更多关于uni-app 【报Bug】vue3/vite app.config.warnHandler无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app 【报Bug】vue3/vite app.config.warnHandler无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中使用 Vue 3 和 Vite 时,app.config.warnHandler 无效的问题可能是由于以下几个原因导致的。以下是一些可能的解决方案和排查步骤:
1. 确保 Vue 3 版本兼容
确保你使用的 Vue 3 版本与 uni-app 和 Vite 兼容。某些版本的 Vue 3 可能存在与 uni-app 或 Vite 的兼容性问题。
2. 检查 app.config.warnHandler 的设置
确保你在正确的地方设置了 app.config.warnHandler。通常,你会在 main.js 或 main.ts 文件中进行设置。例如:
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.config.warnHandler = (msg, vm, trace) => {
console.warn(`Warn: ${msg}\nTrace: ${trace}`)
}
app.mount('#app')
3. 检查 Vite 配置
确保你的 Vite 配置没有覆盖或干扰 Vue 的警告处理。检查 vite.config.js 或 vite.config.ts 文件,确保没有相关的配置导致 warnHandler 失效。
4. 检查 uni-app 的版本
确保你使用的 uni-app 版本支持 Vue 3 和 Vite。某些旧版本的 uni-app 可能不完全支持 Vue 3 的所有特性。
5. 检查控制台输出
检查浏览器的控制台输出,看看是否有其他错误或警告信息。这些信息可能会提供关于 warnHandler 无效的线索。
6. 使用 console.warn 进行调试
在 warnHandler 中添加 console.warn 语句,确保它被正确调用。例如:
app.config.warnHandler = (msg, vm, trace) => {
console.warn('Custom warn handler called:', msg, vm, trace)
}

