{"id":19981,"library":"eslint-plugin-vuetify","title":"eslint-plugin-vuetify","description":"An ESLint plugin to help migrate between Vuetify major versions (v2→v3 and v3→v4). Current stable version is 2.7.2, released regularly with active development. Key differentiator: provides specific rules for deprecations and breaking changes in Vuetify, including recommended presets. Supports ESLint 8, 9, and 10 with both flat and legacy configs. Ships TypeScript types. Useful for projects using Vuetify 3 or 4, and for migrating from Vuetify 2.","status":"active","version":"2.7.2","language":"javascript","source_language":"en","source_url":"https://github.com/vuetifyjs/eslint-plugin-vuetify","tags":["javascript","typescript"],"install":[{"cmd":"npm install eslint-plugin-vuetify","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-vuetify","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-vuetify","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: ESLint is required to run the plugin.","package":"eslint","optional":false},{"reason":"Peer dependency: The plugin's rules are specific to Vuetify components.","package":"vuetify","optional":false}],"imports":[{"note":"ESM is recommended; CommonJS require works but may cause issues with flat config usage.","wrong":"const vuetify = require('eslint-plugin-vuetify')","symbol":"plugin object","correct":"import vuetify from 'eslint-plugin-vuetify'"},{"note":"For flat config (ESLint 9+), use 'flat/base' or 'flat/recommended'. Legacy configs are available under the root.","wrong":"vuetify.configs.base","symbol":"base config (flat)","correct":"vuetify.configs['flat/base']"},{"note":"v4 migration preset only available in flat config format since v2.6.0.","wrong":"vuetify.configs['recommended-v4']","symbol":"recommended-v4 config (flat)","correct":"vuetify.configs['flat/recommended-v4']"},{"note":"Legacy .eslintrc.js format uses 'plugin:' prefix. For ESLint 8 only.","wrong":"extends: ['vuetify/base']","symbol":"legacy config via extends","correct":"extends: ['plugin:vuetify/base']"}],"quickstart":{"code":"// eslint.config.js\nimport vue from 'eslint-plugin-vue'\nimport vuetify from 'eslint-plugin-vuetify'\n\nexport default [\n  ...vue.configs['flat/base'],\n  ...vuetify.configs['flat/base'],\n  {\n    rules: {\n      'vuetify/no-deprecated-typography': 'error',\n      'vuetify/no-legacy-grid-props': 'error',\n      'vuetify/no-elevation-overflow': 'error',\n      'vuetify/no-deprecated-snackbar': 'error',\n    }\n  }\n]","lang":"javascript","description":"Set up eslint-plugin-vuetify with flat config (ESLint 9+) and enable all v4 migration rules."},"warnings":[{"fix":"Switch to eslint.config.js flat config using 'flat/base' or 'flat/recommended' presets.","message":"ESLint 10 only supports flat config format; legacy .eslintrc.js is not compatible.","severity":"breaking","affected_versions":">=10.0.0"},{"fix":"Convert pug templates to HTML or use a separate migration approach.","message":"Does not affect pug templates due to vue-eslint-parser limitation.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Install eslint-plugin-vuetify@vuetify-2 for Vuetify v2 migration rules.","message":"Vuetify v2 rules are not included in the latest plugin version; use eslint-plugin-vuetify@vuetify-2 for v1→v2 migrations.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Ensure order: ...vue.configs['flat/base'] then ...vuetify.configs['flat/base'].","message":"When using flat config, you must spread vue plugin configs before vuetify configs for rules to work correctly.","severity":"gotcha","affected_versions":">=2.5.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install eslint-plugin-vuetify --save-dev' or 'yarn add eslint-plugin-vuetify -D'.","cause":"eslint-plugin-vuetify not installed or missing from node_modules.","error":"Error: Failed to load plugin 'vuetify' declared in 'extends': Cannot find module 'eslint-plugin-vuetify'"},{"fix":"Use vuetify.configs['flat/base'] with bracket notation and string quotes.","cause":"Using incorrect config name for flat config; e.g., missing quotes or wrong key.","error":"Error: Config (flat: 'flat/base') was not found in the plugin 'eslint-plugin-vuetify'"},{"fix":"Ensure 'eslint-plugin-vuetify' is installed and use 'plugin:vuetify/base' (note hyphen).","cause":"The plugin is not installed or the name is misspelled. Also, legacy config requires 'plugin:' prefix.","error":"Error: ESLint configuration in .eslintrc.js is invalid: extends property value 'plugin:vuetify/base' is not defined"},{"fix":"Use 'plugin:vuetify/base' for legacy .eslintrc.js, or switch to flat config and use 'flat/recommended'.","cause":"The 'recommended' config only exists for flat config, not legacy. Legacy users should use 'plugin:vuetify/base'.","error":"ESLint couldn't find the config 'plugin:vuetify/recommended'."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}