eslint-plugin-vuetify icon indicating copy to clipboard operation
eslint-plugin-vuetify copied to clipboard

Support ESLint 9.x

Open 1Luc1 opened this issue 1 year ago • 18 comments

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/

1Luc1 avatar Apr 08 '24 16:04 1Luc1

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

cpontvieux-systra avatar Apr 12 '24 13:04 cpontvieux-systra

import vuetify from 'eslint-config-vuetify'

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

kieuminhcanh avatar Apr 19 '24 17:04 kieuminhcanh

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: [email protected]
npm ERR! Found: [email protected]
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 [email protected]
npm ERR! node_modules/eslint-plugin-vuetify
npm ERR!   dev eslint-plugin-vuetify@"^2.4.0" from the root project

1Luc1 avatar Apr 19 '24 17:04 1Luc1

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

corbinu avatar Apr 20 '24 03:04 corbinu

@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

corbinu avatar Apr 20 '24 03:04 corbinu

Hi, are there any updates on this?

SamPulmanCL avatar May 23 '24 08:05 SamPulmanCL

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

crystalfp avatar Jun 12 '24 16:06 crystalfp

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"),
]

matteiben-onx avatar Jun 17 '24 14:06 matteiben-onx

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

crystalfp avatar Jun 17 '24 17:06 crystalfp

Hi, is there any update on this? Eslint 9.8 is already released and we cannot upgrade without using --force. Thanks.

jakubmatisak avatar Aug 06 '24 08:08 jakubmatisak

Is this going anywhere? What is the recommended way to upgrade a large project without an eslint plugin?

jewpaltz avatar Aug 07 '24 05:08 jewpaltz

I submitted a PR that fixes this and makes eslint-plugin-vuetifyc compatible with eslint 9.x https://github.com/vuetifyjs/eslint-plugin-vuetify/pull/102

jewpaltz avatar Aug 19 '24 11:08 jewpaltz

To use my fork until they merge my PR into the official npm package: Clone https://github.com/jewpaltz/eslint-plugin-vuetify into a folder in your repo (creating a submodule). Then in your eslint.config.js add

// eslint.config.js
import pluginVuetify from "../eslint-plugin-vuetify/src/configs/flat/base.js" // or whatever the path to your submodule is.
// To use the `recommended` configuration (including extra rules for the grid system) replace `base.js` with `recommended.js`

export default [
  pluginVuetify
]

Remember that my code will need to be available to your CI/CD system. So keep that in mind when cloning your repo. Make sure that it's included in your git repo.

jewpaltz avatar Aug 19 '24 16:08 jewpaltz