Throw Uncaught TypeError when vConsole.destroy()
vConsole Version: V3.15.0
Project: RuoYi-Vue
销毁 VConsole 时会报错:
import VConsole from 'vconsole'
var __vconsole
export default {
open() {
__vconsole = new VConsole()
},
close() {
__vconsole.destroy()
__vconsole = null
},
toggle() {
if (__vconsole == null) {
this.open()
} else {
this.close()
}
},
}
以上的操作放到了 Vue.prototype.$vconsole 中,直接调用 this.toggle(),能正常打开关闭,但是关闭后,会报如下错误:

Details:

看到错误信息,破案了,输出 vConsole 会报错:
console.log('close vconsole1', __vconsole)
这是变量不能读取吗,是有什么和 console.log 冲突了呢?
遇到了同样问题,销毁后有报错。我是在插件on('ready')回调中进行的销毁

+1销毁报错,没有其他任何多余的代码
export const useConsole = async () => {
const vConsole = new VConsole()
// call `console` methods as usual
console.log("vConsole loaded")
// remove it when you finish debugging
if (!isDev) {
vConsole.destroy()
}
}
@terwer 代码片段是完整的代码吗?在 ready 事件后再调用 destroy() 试试看?
@Maizify
我是 Vue3 项目,在 setup 里面 vue 的 onMounted 钩子里面里面初始化,然后销毁。
我有个复现链接 https://xul67b-5173.csb.app/ 直接打开控制台能看到错误
源码:
https://codesandbox.io/p/sandbox/loving-davinci-xul67b?file=%2Fsrc%2Fcomposables%2FuseConsole.ts%3A4%2C35
https://codesandbox.io/p/sandbox/loving-davinci-xul67b?file=%2Fsrc%2FApp.vue
Vue 貌似没有 ready 事件,只有 onMounted