A vite plugin for Vue DevTools that enhances Vue developer experience with debugging and inspection capabilities
—
Configuration options and setup for the Vite Plugin Vue DevTools, including customization of DevTools behavior, component inspection, and editor integration.
import VueDevTools from "vite-plugin-vue-devtools";
import type { VitePluginVueDevToolsOptions } from "vite-plugin-vue-devtools";Creates an array of Vite plugins that enable Vue DevTools integration during development.
/**
* Creates Vue DevTools Vite plugin with optional configuration
* @param options - Plugin configuration options
* @returns Array of Vite plugins for DevTools functionality
*/
function VitePluginVueDevTools(options?: VitePluginVueDevToolsOptions): PluginOption;Usage Examples:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import VueDevTools from 'vite-plugin-vue-devtools'
// Basic usage with default options
export default defineConfig({
plugins: [
vue(),
VueDevTools(),
],
})
// With custom configuration
export default defineConfig({
plugins: [
vue(),
VueDevTools({
launchEditor: 'webstorm',
componentInspector: {
toggleComboKey: 'control-shift',
toggleButtonVisibility: 'active',
},
appendTo: /main\.(js|ts)$/,
}),
],
})Plugin configuration interface with options for customizing DevTools behavior.
interface VitePluginVueDevToolsOptions {
/**
* Append import to module ending with pattern instead of script tag
* Useful for non-HTML entry points
* @default ''
*/
appendTo?: string | RegExp;
/**
* Enable Vue component inspector functionality
* @default true
*/
componentInspector?: boolean | VitePluginInspectorOptions;
/**
* Target editor when opening files from DevTools
* @default 'code'
*/
launchEditor?: EditorType;
/**
* @deprecated Removed in v7.1.0 - Host auto-detected
*/
openInEditorHost?: string | false;
/**
* @deprecated Removed in v7.1.0 - Host auto-detected
*/
clientHost?: string | false;
}
type EditorType =
| 'appcode' | 'atom' | 'atom-beta' | 'brackets' | 'clion'
| 'code' | 'code-insiders' | 'codium' | 'emacs' | 'idea'
| 'notepad++' | 'pycharm' | 'phpstorm' | 'rubymine'
| 'sublime' | 'vim' | 'visualstudio' | 'webstorm' | 'rider'
| string;
// Inspector-specific configuration options (from vite-plugin-vue-inspector)
interface VitePluginInspectorOptions {
toggleComboKey?: string;
toggleButtonVisibility?: 'always' | 'active' | 'never';
appendTo?: string | RegExp;
openInEditor?: boolean;
launchEditor?: EditorType;
}The plugin uses sensible defaults for development workflows.
const defaultOptions: VitePluginVueDevToolsOptions = {
appendTo: '',
componentInspector: true,
launchEditor: process.env.LAUNCH_EDITOR ?? 'code',
};The plugin implements several Vite plugin hooks for seamless integration:
appendToThe plugin creates virtual modules for internal functionality:
virtual:vue-devtools-options: Exposes plugin configuration to client codevirtual:vue-devtools-path:*: Resolves DevTools resource paths dynamicallyWhen the development server starts, the plugin:
/__devtools__ endpointServer Output Example:
➜ Vue DevTools: Open http://localhost:5173/__devtools__/ as a separate window
➜ Vue DevTools: Press Option(⌥)+Shift(⇧)+D in App to toggle the Vue DevToolsInstall with Tessl CLI
npx tessl i tessl/npm-vite-plugin-vue-devtools