Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3e5251c

Browse files
committed
feat: option to disable vueDevTools
1 parent 684897f commit 3e5251c

File tree

6 files changed

+34
-18
lines changed

6 files changed

+34
-18
lines changed

packages/devtools-kit/src/_types/options.ts

+5
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ export interface ModuleOptions {
3232
*/
3333
componentInspector?: boolean | VitePluginInspectorOptions
3434

35+
/**
36+
* Enable Vue DevTools integration
37+
*/
38+
vueDevTools?: boolean
39+
3540
/**
3641
* Enable vite-plugin-inspect
3742
*

packages/devtools/client/app.vue

-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { splitScreenAvailable, splitScreenEnabled } from '~/composables/storage'
1212
import { useSchemaInput } from './composables/state-schema'
1313
import { useDevToolsOptions } from './composables/storage-options'
1414
import { setupClientRPC } from './setup/client-rpc'
15-
import { setupVueDevTools } from './setup/vue-devtools'
1615
1716
import 'floating-vue/dist/style.css'
1817
import '@vue/devtools-applet/style.css'
@@ -39,8 +38,6 @@ useHead({
3938
},
4039
],
4140
})
42-
43-
setupVueDevTools()
4441
setupClientRPC()
4542
4643
const client = useClient()

packages/devtools/client/pages/modules/pinia.vue

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
<script setup lang="ts">
22
import { definePageMeta } from '#imports'
33
import { Pinia } from '@vue/devtools-applet'
4-
import { useDevToolsState as useVueDevToolsState } from '@vue/devtools-core'
5-
import { useServerConfig } from '~/composables/state'
6-
7-
const { connected } = useVueDevToolsState()
4+
import { useModuleOptions, useServerConfig } from '~/composables/state'
5+
import { useVueDevToolsState } from '~/setup/vue-devtools'
86
97
definePageMeta({
108
icon: 'i-logos-pinia',
@@ -13,9 +11,12 @@ definePageMeta({
1311
category: 'vue-devtools',
1412
show() {
1513
const configs = useServerConfig()
16-
return () => configs.value?.modules?.some(item => (item as string | Array<unknown>)?.includes('@pinia/nuxt'))
14+
const options = useModuleOptions()
15+
return () => options.value?.vueDevTools !== false && configs.value?.modules?.some(item => (item as string | Array<unknown>)?.includes('@pinia/nuxt'))
1716
},
1817
})
18+
19+
const { connected } = useVueDevToolsState()
1920
</script>
2021

2122
<template>

packages/devtools/client/pages/modules/render-tree.vue

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
11
<script setup lang="ts">
22
import { definePageMeta } from '#imports'
33
import { Components as VueComponents } from '@vue/devtools-applet'
4-
import { useDevToolsState as useVueDevToolsState } from '@vue/devtools-core'
54
import { useClient } from '~/composables/client'
65
import { useOpenInEditor } from '~/composables/editor'
7-
8-
const { connected } = useVueDevToolsState()
9-
const client = useClient()
10-
const openInEditor = useOpenInEditor()
6+
import { useModuleOptions } from '~/composables/state'
7+
import { useVueDevToolsState } from '~/setup/vue-devtools'
118
129
definePageMeta({
1310
icon: 'i-carbon-category',
1411
title: 'Render Tree',
1512
layout: 'full',
1613
show: () => {
1714
const client = useClient()
18-
return () => !!client.value
15+
const options = useModuleOptions()
16+
return () => options.value?.vueDevTools !== false && !!client.value
1917
},
2018
order: 1,
2119
category: 'vue-devtools',
2220
})
2321
22+
const { connected } = useVueDevToolsState()
23+
const client = useClient()
24+
const openInEditor = useOpenInEditor()
25+
2426
function togglePanel(status: boolean) {
2527
if (status)
2628
client.value.devtools.open()

packages/devtools/client/setup/vue-devtools.ts

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1-
import { functions, onRpcConnected, rpc, useDevToolsState as useVueDevToolsState } from '@vue/devtools-core'
1+
import { functions, onRpcConnected, rpc, useDevToolsState } from '@vue/devtools-core'
22
import { createRpcClient } from '@vue/devtools-kit'
33
import { watchEffect } from 'vue'
44
import { useDevToolsFrameState } from '../composables/storage'
55

6-
export function setupVueDevTools() {
7-
const { connected } = useVueDevToolsState()
6+
let initiated = false
7+
8+
export function useVueDevToolsState() {
9+
ensureVueDevTools()
10+
return useDevToolsState()
11+
}
12+
13+
export function ensureVueDevTools() {
14+
if (initiated)
15+
return
16+
initiated = true
17+
const { connected } = useDevToolsState()
818

919
const state = useDevToolsFrameState()
1020

packages/devtools/src/module-main.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ window.__NUXT_DEVTOOLS_TIME_METRIC__.appInit = Date.now()
192192

193193
await import('./integrations/plugin-metrics').then(({ setup }) => setup(ctx))
194194

195-
await import('./integrations/vue-devtools').then(({ setup }) => setup(ctx))
195+
if (options.vueDevTools !== false)
196+
await import('./integrations/vue-devtools').then(({ setup }) => setup(ctx))
196197

197198
if (options.viteInspect !== false)
198199
await import('./integrations/vite-inspect').then(({ setup }) => setup(ctx))

0 commit comments

Comments
 (0)