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

2 回复

更多关于uni-app 【报Bug】vue3/vite app.config.warnHandler无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 中使用 Vue 3Vite 时,app.config.warnHandler 无效的问题可能是由于以下几个原因导致的。以下是一些可能的解决方案和排查步骤:

1. 确保 Vue 3 版本兼容

确保你使用的 Vue 3 版本与 uni-appVite 兼容。某些版本的 Vue 3 可能存在与 uni-appVite 的兼容性问题。

2. 检查 app.config.warnHandler 的设置

确保你在正确的地方设置了 app.config.warnHandler。通常,你会在 main.jsmain.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.jsvite.config.ts 文件,确保没有相关的配置导致 warnHandler 失效。

4. 检查 uni-app 的版本

确保你使用的 uni-app 版本支持 Vue 3Vite。某些旧版本的 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)
}
回到顶部