{"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,"search_vec":"'2025':26 '3':39 '4.6.2':24 '9':34 'access':43,81 'activ':27 'automat':45 'box':91 'config':3,9,56,70,72,94,97 'current':20 'detect':46 'differenti':66 'eslint':2,7,33,93,96 'eslint-config':95 'eslint-config-vuetifi':1 'eslintrc':76 'featur':48 'flat':8,71 'full':62 'ide':63 'includ':35 'integr':78 'javascript':92 'jest':41 'key':65 'legaci':75 'like':49 'lint':69 'maintain':15,28 'march':25 'month':30 'no-only-test':83 'offici':67 'opinion':6 'plugin':87 'project':14,47 'releas':31 'rule':44 'setup':57 'ship':58 'stabl':21 'support':32,64 'team':19 'test':86 'type':60 'typescript':37,50,59,100 'v10':36 'version':22 'vitest':40,52 'vue':38,98 'vue.js':13 'vuej':80 'vuejs-access':79 'vuetifi':4,11,18,68,99 'zero':55 'zero-config':54","created_at":"2026-04-25T11:18:44.716992+00:00","updated_at":"2026-04-25T11:18:44.716992+00:00","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,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":"https://vuetifyjs.com","github":"https://github.com/vuetifyjs/eslint-config-vuetify","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/eslint-config-vuetify","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}