{"id":19619,"library":"eslint-config-vuetify","title":"eslint-config-vuetify","description":"An opinionated ESLint flat config for Vuetify and Vue.js projects, maintained by the Vuetify team. Current stable version is 4.6.2 (March 2025). Actively maintained with monthly releases. Supports ESLint 9+ (including v10), TypeScript, Vue 3, Vitest, Jest, and accessibility rules. Automatically detects project features like TypeScript and Vitest, with zero-config setup. Ships TypeScript types for full IDE support. Key differentiator: official Vuetify linting config, flat config only (no legacy .eslintrc), and integrates vuejs-accessibility and no-only-tests plugins out of the box.","status":"active","version":"4.6.2","language":"javascript","source_language":"en","source_url":"https://github.com/vuetifyjs/eslint-config-vuetify","tags":["javascript","eslint","config","eslint-config","vue","vuetify","typescript"],"install":[{"cmd":"npm install eslint-config-vuetify","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-vuetify","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-vuetify","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency for Vitest rule support (detected automatically)","package":"@vitest/eslint-plugin","optional":true},{"reason":"Peer dependency - requires ESLint ^9.5.0 || ^10.0.0","package":"eslint","optional":false},{"reason":"Peer dependency for Jest rule support (detected automatically)","package":"eslint-plugin-jest","optional":true},{"reason":"Peer dependency for no-only-tests rule","package":"eslint-plugin-no-only-tests","optional":true},{"reason":"Peer dependency for Vue accessibility rules","package":"eslint-plugin-vuejs-accessibility","optional":true}],"imports":[{"note":"Package is ESM-only; default export is a factory function that returns an ESLint flat config array. CommonJS require will fail.","wrong":"const { vuetify } = require('eslint-config-vuetify')","symbol":"default (vuetify function)","correct":"import vuetify from 'eslint-config-vuetify'"},{"note":"TypeScript types are shipped but not publicly documented; use at your own risk.","wrong":"","symbol":"TypeScript types","correct":"import type { VuetifyConfig } from 'eslint-config-vuetify'"},{"note":"Second and subsequent arguments are merged as additional flat config objects. First argument is options object.","wrong":"export default vuetify({ rules: {} })","symbol":"Calling with additional config","correct":"export default vuetify({ vue: true }, { rules: {} })"}],"quickstart":{"code":"// Install: npm install -D eslint-config-vuetify\n\n// eslint.config.js\nimport vuetify from 'eslint-config-vuetify'\n\nexport default vuetify({\n  vue: true,\n  ts: {\n    preset: 'all',\n  },\n})\n\n// This config automatically detects TypeScript, Vitest, and Jest. The vuetify() call returns an array of flat configs.","lang":"javascript","description":"Shows minimal flat config setup with vue and TypeScript enabled, using the default export factory function."},"warnings":[{"fix":"Migrate to eslint.config.js flat config and upgrade ESLint to ^9.5.0 or ^10.0.0.","message":"Version 4.x requires ESLint 9+ with flat config only. Legacy .eslintrc is not supported.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Use import syntax in the config file, or rename config file to .mjs or set type: module in package.json.","message":"The package is ESM-only. CommonJS require() will fail with ERR_REQUIRE_ESM.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Update to version 4.x and migrate to flat config.","message":"Version 3.x is no longer maintained. Users should upgrade to v4 for ESLint 9+ support.","severity":"deprecated","affected_versions":">=3.0.0 <4.0.0"},{"fix":"Use export default vuetify(...) as shown in docs. Do not spread the result.","message":"The vuetify() factory returns an array, not a single config object. Spreading or assigning incorrectly may break the config.","severity":"gotcha","affected_versions":">=4.0.0"},{"fix":"Install all peer dependencies: eslint, @vitest/eslint-plugin, eslint-plugin-jest, eslint-plugin-no-only-tests, eslint-plugin-vuejs-accessibility.","message":"Peer dependencies must be installed manually. Missing peer deps can cause runtime errors or missing rules.","severity":"gotcha","affected_versions":">=4.0.0"},{"fix":"Declare vue, ts, vitest, jest options explicitly when using workspaces.","message":"Automatic detection may fail in monorepos if the root package.json does not contain all tools. Explicit configuration is required.","severity":"gotcha","affected_versions":">=4.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Convert your eslint config to ESM by renaming to .mjs or setting type:module in package.json, then use import vuetify from 'eslint-config-vuetify'.","cause":"Using CommonJS require() on an ESM-only package.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module /path/node_modules/eslint-config-vuetify/index.js not supported."},{"fix":"Run npm install -D eslint-config-vuetify@latest and ensure it's in devDependencies.","cause":"Package not installed or improperly resolved.","error":"ESLint couldn't find the config 'eslint-config-vuetify'. Check that the package is installed."},{"fix":"Install the missing peer: npm install -D eslint-plugin-vuejs-accessibility.","cause":"Missing peer dependency.","error":"Failed to load plugin 'eslint-plugin-vuejs-accessibility': Cannot find module 'eslint-plugin-vuejs-accessibility'"},{"fix":"Use export default vuetify() not export default ...vuetify.","cause":"Default import is a factory function, not a config object. Often caused by spreading the import incorrectly.","error":"TypeError: vuetify is not a function"},{"fix":"Rename file to .mjs, or add type:module to package.json.","cause":"Using import in a CommonJS file without ESM support.","error":"Parsing error: The keyword 'import' is reserved"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}