2025-07-06 20:54:40 +08:00

45 lines
1.1 KiB
JavaScript

/* eslint-disable new-cap */
import * as Vue from 'vue'
import App from 'virtual:vue-inspector-path:Overlay.vue'
import inspectorOptions from 'virtual:vue-inspector-options'
const CONTAINER_ID = 'vue-inspector-container'
function createInspectorContainer() {
if (document.getElementById(CONTAINER_ID) != null)
throw new Error('vueInspectorContainer element already exists')
const el = document.createElement('div')
el.setAttribute('id', CONTAINER_ID)
document.getElementsByTagName('body')[0].appendChild(el)
return el
}
function load() {
const isClient = typeof window !== 'undefined'
if (!isClient)
return
createInspectorContainer()
const { vue } = inspectorOptions
// vue 2/3 compatibility
vue === 3
? Vue.createApp({
render: () => Vue.h(App),
devtools: {
hide: true,
},
}).mount(`#${CONTAINER_ID}`)
: new Vue.default({
render: h => h(App),
devtools: {
hide: true,
},
}).$mount(`#${CONTAINER_ID}`)
}
if (inspectorOptions.lazyLoad)
setTimeout(load, inspectorOptions.lazyLoad)
else
load()