vuetifyjs / eslint-plugin-vuetify

An eslint plugin for Vuetify
Other
119 stars 22 forks source link

Support ESLint 9.x #93

Open 1Luc1 opened 3 months ago

1Luc1 commented 3 months ago

ESLint v9.0.0 is released !

It would be awesome to have official ESLint 9 support. https://eslint.org/blog/2024/04/eslint-v9.0.0-released/

cpontvieux-systra commented 2 months ago

eslint-plugin-vue now support flat config. Can this repo do the same please?

kieuminhcanh commented 2 months ago
import vuetify from 'eslint-config-vuetify'

{
  ... 
  rules: {
      ...vuetify.rules,
      // Other rules
  }
  ...
}
1Luc1 commented 2 months ago
import vuetify from 'eslint-config-vuetify'

{
  ... 
  rules: {
      ...vuetify.rules,
      // Other rules
  }
  ...
}

// .eslintrc.js https://eslint.org/docs/latest/use/configure/migration-guide

@kieuminhcanh meant to have dependency support for ESLint 9.x; still get ERESOLVE unable to resolve dependency tree for npm update:

npm ERR! While resolving: rehearsal-room-web@1.0.3
npm ERR! Found: eslint@9.0.0
npm ERR! node_modules/eslint
npm ERR!   dev eslint@"^9.0.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer eslint@"^8.0.0" from eslint-plugin-vuetify@2.4.0
npm ERR! node_modules/eslint-plugin-vuetify
npm ERR!   dev eslint-plugin-vuetify@"^2.4.0" from the root project
corbinu commented 2 months ago

@kieuminhcanh Can you please reopen? This request was for eslint-plugin-vuetify not eslint-config-vuetify.

corbinu commented 2 months ago

@1Luc1 I tried updating this repo to 9 but all the tests fail for not being flat file config. I will take a look to see if I can get them updated tomorrow and make a PR

SamPulmanCL commented 1 month ago

Hi, are there any updates on this?

crystalfp commented 3 weeks ago

Tried brute force to use the plugin in flat config file. After installing eslint-plugin-vuetify , I have added the following lines to eslint.config.mjs as all other plugins:

import vuetifyPlugin from "eslint-plugin-vuetify";
. . .
    plugins: {
        . . .
        vuetify: vuetifyPlugin
    }
. . .
    rules: {
        . . .
        ...vuetifyPlugin.configs["base"].rules,
    }

elicited a

TypeError: Error while loading rule 'vuetify/no-deprecated-classes': Cannot read properties of undefined (reading 'defineTemplateBodyVisitor')

This means I should I wait for an official release that supports ESlint 9.0? Thanks! mario

matteiben-onx commented 3 weeks ago

I found you can use this guide for compatibility

https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config

import { FlatCompat } from "@eslint/eslintrc"
import pluginVue from "eslint-plugin-vue"
import pluginVuetify from "eslint-plugin-vuetify"

const compat = new FlatCompat({
  config: pluginVuetify.configs.recommended,
})

export default [
  ...pluginVue.configs["flat/essential"],
  ...pluginVue.configs["flat/recommended"],
  ...pluginVue.configs["flat/strongly-recommended"],
  ...compat.extends("plugin:vue/base", "plugin:vuetify/base"),
]
crystalfp commented 2 weeks ago

Yes, thanks! This helps but not solve the problem that a simple npm up fails because it expects eslint 8.56.0 and I should remember to use npm up --force