Giter VIP home page Giter VIP logo

eslint-plugin-vuetify's Introduction

eslint-plugin-vuetify

This package is for migrating from Vuetify v2 to v3, use eslint-plugin-vuetify@vuetify-2 for v1 to v2.


Support the maintainer of this plugin:

Kael Watts-Deuchar

Become a Patron

๐Ÿ’ฟ Install

You should have eslint and eslint-plugin-vue set up first.

yarn add eslint-plugin-vuetify -D
# OR
npm install eslint-plugin-vuetify --save-dev
// .eslintrc.js
module.exports = {
  extends: [
    'plugin:vue/base',
    'plugin:vuetify/base'
  ]
}

NOTE This plugin does not affect pug templates due to a limitation in vue-eslint-parser. I suggest converting your pug templates to HTML with pug-to-html in order to use this plugin.

Rules

Deprecations

These rules will help you avoid deprecated components, props, and classes. They are included in the plugin:vuetify/base preset.

Grid system

These rules are designed to help migrate to the new grid system in Vuetify v2. They are included in the plugin:vuetify/recommended preset.

๐Ÿ’ช Supporting Vuetify

Vuetify is an open source MIT project that has been made possible due to the generous contributions by community backers. If you are interested in supporting this project, please consider:

๐Ÿ“‘ License

MIT

Copyright (c) 2016-present Vuetify LLC

eslint-plugin-vuetify's People

Contributors

dependabot[bot] avatar dsseng avatar icleolion avatar jacekkarczmarczyk avatar johnleider avatar jonasengelmann avatar kaelwd avatar lukaslihotzki avatar messenjer avatar mtdvlpr avatar yinm avatar yutak23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eslint-plugin-vuetify's Issues

"The activator slot must be bound" doesn't go away

I updated my template with activator slot, but my browser console is still screaming about [Vuetify] The activator slot must be bound, try '<template v-slot:activator="{ on }"><v-btn v-on="on">'

template:

  <v-menu
    :close-on-content-click="false"
    :rules="[isRequired]"
    v-model="menu"
    transition="scale-transition"
    offset-y
    full-width
    min-width="562px"
  >
    <template v-slot:activator="{ on }">
      <v-text-field
        :value="string"
        :rules="[isRequired]"
        :label="$t('date')"
        readonly
        v-on="on"
      />
    </template>
    <div>
      <v-date-picker v-model="date" />
      <v-time-picker v-model="time" format="24hr" width="272" />
    </div>
  </v-menu>

Allow valid props

VImg still supports using max-height, max-width & height props.

height prop is useful along width width prop when we use image inside prepend slot in VListItem. Without height prop image gets bigger and aspect ration don't have effect.

Moreover, VSlider supports with ticks & show-ticks according to API and usage: https://next.vuetifyjs.com/en/api/v-slider/

However, it is marked as error:
image

ESlint peerDependency

npm 7 tries to automatically install peer dependencies, Hence, since upgrade i get the following error:

Could not resolve dependency:
npm ERR! peer eslint@"^6.0.0 | ^7.0.0" from [email protected]

Have no issues with [email protected] installed. Any chance to update it?

False `no-deprecated-props` error on VBtn

VBtn throws an error for the text prop for vuetify/no-deprecated-props. That prop is listed in the docs and does have the intended effect. The linter will automatically try to change it to variant="text", which is correct for v2 to v3, but doesn't support the new v3 version of the prop (and long-term use of the linter).

ERROR TypeError: Cannot read property 'value' of null

This happened in only 1 of the files in my project, but I'm not really sure what makes that component special. The line it's failing on is basically import MyOtherComponent from @/components/common/MyOtherComponent. The only Vuetify rule I'm running is the "no-deprecated-classes" rule.

eslint: 4.19.1
eslint-plugin-vue: 4.7.1
eslint-plugin-vuetify: 1.0.0-beta.3

I tried upgrading these versions (and some others), but that didn't seem to help.

 ERROR  TypeError: Cannot read property 'value' of null
Occurred while linting /Users/keegan/my-vuetify-project/src/components/widgets/MyComponent.vue:80
TypeError: Cannot read property 'value' of null
Occurred while linting /Users/keegan/my-vuetify-project/src/components/widgets/MyComponent.vue:80
    at EventEmitter.VAttribute[key.name="class"] (/Users/keegan/my-vuetify-project/node_modules/eslint-plugin-vuetify/lib/rules/no-deprecated-classes.js:112:36)
    at EventEmitter.emit (events.js:198:13)
    at NodeEventGenerator.applySelector (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:3128:26)
    at NodeEventGenerator.applySelectors (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:3142:22)
    at NodeEventGenerator.enterNode (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:3150:14)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:110:13)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:117:21)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:122:13)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:117:21)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:117:21)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:117:21)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:117:21)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:117:21)
    at traverse (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:117:21)
    at traverseNodes (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:128:5)
    at scriptVisitor.Program:exit (/Users/keegan/my-vuetify-project/node_modules/vue-eslint-parser/index.js:3586:25)
error Command failed with exit code 1.

Does not work with eslint v7 without --legacy-peer-deps

(follow-up of #26)

Installing this plugin with "eslint": "^7.22.0" in my package.json fails with the following output:

> npm install eslint-plugin-vuetify --save-dev              
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! Found: [email protected]
npm ERR! node_modules/eslint
npm ERR!   peer eslint@">= 4.12.1" from [email protected]
npm ERR!   node_modules/babel-eslint
npm ERR!     dev babel-eslint@"^10.1.0" from the root project
npm ERR!   peer eslint@"^7.12.1" from [email protected]
npm ERR!   node_modules/eslint-config-standard
npm ERR!     dev eslint-config-standard@"^16.0.2" from the root project
npm ERR!   8 more (eslint-loader, eslint-plugin-es, eslint-plugin-import, ...)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer eslint@"^5.0.0 || ^6.0.0" from [email protected]
npm ERR! node_modules/eslint-plugin-vuetify/node_modules/eslint-plugin-vue
npm ERR!   eslint-plugin-vue@"^6.2.2" from [email protected]
npm ERR!   node_modules/eslint-plugin-vuetify
npm ERR!     dev eslint-plugin-vuetify@"*" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /home/thomas/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/thomas/.npm/_logs/2021-03-15T18_11_31_166Z-debug.log

Which is probably due to this peer dependency (not sure what it is, I'm new to the node world). That peer dependency requires eslint v6

"eslint-plugin-vue": "^6.2.2",

It only works successfull if I install it with npm install eslint-plugin-vuetify --save-dev --legacy-peer-deps

npm version: 7.5.2
node version: v14.15.4

Vuetify 3

Components

  • VTabsItems -> VWindow
  • VTabItem -> VWindowItem
  • VTabsSlider removed - only sliderColor allowed

Props

  • color: primary darken-1 -> primary-darken-1
  • light -> theme="light"
  • dark -> theme="dark"

App Bar

  • bottom -> position="bottom"
  • dense -> density="compact" **double-check this
  • src -> image
  • value -> model-value

Avatar

  • tile -> rounded="0"

Badge

  • value -> model-value
  • tile -> rounded="0"
  • top -> location="top"
  • bottom -> location="bottom"
  • left -> location="left"
  • right -> location="right"

Banner

  • single-line -> lines="one"
  • tile -> rounded="0"

Bottom Navigation

  • background-color -> bg-color
  • shift -> mode="shift"
  • horizontal -> mode="horizontal"
  • value -> model-value

Btn

  • outlined -> variant="outlined"

  • plain -> variant="plain"

  • text -> variant="text"

  • x-small -> size="x-small"

  • small -> size="small"

  • large -> size="large"

  • x-large -> size="x-large"

  • absolute -> position="absolute"

  • fixed -> position="fixed"

  • depressed -> elevation="0"

  • ripple - needs to be updated to accept an object

Card

  • img -> image

Chip

  • x-small -> size="x-small"
  • small -> size="small"
  • large -> size="large"
  • x-large -> size="x-large"
  • outlined -> variant="outline"

Expansion Panel

  • active-class -> selected-class

Expansion Panels

  • accordion -> variant="accordion"
  • inset -> variant="inset"
  • popout -> variant="popout"

File Input

  • background-color -> bg-color
  • filled -> variant="filled"
  • outlined -> variant="outlined"
  • 'underlined', 'outlined', 'filled', 'contained', 'plain'

Footer

  • absolute -> position="absolute"
  • fixed -> position="fixed"

Icon

  • x-small -> size="x-small"
  • small -> size="small"
  • large -> size="large"
  • x-large -> size="x-large"

Input

  • dense -> density="compact"
  • value -> model-value

Item Group

  • value -> model-value

Item

  • active-class -> selected-class

List

  • three-line -> lines="three"
  • two-line -> lines="two"
  • color -> bg-color

Radio/checkbox

  • onIcon -> trueIcon
  • offIcon -> falseIcon

RadioGroup

  • row -> inline

Slider

  • vertical -> direction="vertical"
  • ticks -> show-ticks
    • One-time
  • tick-labels -> ticks

Text Field

  • filled -> variant="filled"
    • filled is the new default variant
  • outlined -> variant="outlined"
  • plain -> variant="plain"
  • solo -> variant="contained"
  • variant="underlined" -> was the v2 default variant

Tabs

  • backgroundColor -> bgColor

Slots

Classes

  • .primary .darken-1 -> .primary-darken-1
  • .text--primary -> .text-high-emphasis
  • .text--secondary -> .text-medium-emphasis
  • .text--disabled -> .text-disabled

Add no-deprecated-props rule

  • VBtn.outline -> outlined
  • VBtn.flat -> text
  • VBtn.round -> rounded
  • VAlert.outline -> outlined
  • mobile-break-point -> mobile-breakpoint
  • bottom-nav.active
  • carousel.hide-controls -> show-arrows
  • v-chip
    • outline -> outlined
    • selected -> value
  • data-iterator
    • 'expand',
    • 'content-class'
    • 'content-props'
    • 'content-tag'
    • ['disable-initial-sort', 'sort-by']
    • ['filter', 'custom-filter']
    • ['pagination', 'options']
    • ['total-items', 'server-items-length']
    • ['hide-actions', 'hide-default-footer']
    • ['rows-per-page-items', 'footer-props.items-per-page-options']
    • ['rows-per-page-text', 'footer-props.items-per-page-text']
    • ['prev-icon', 'footer-props.prev-icon']
    • ['next-icon', 'footer-props.next-icon']
  • table
    • ['sort-icon', 'header-props.sort-icon']
    • ['hide-headers', 'hide-default-header']
    • ['select-all', 'show-select']

More: 6cfc2bb3c1bed3c4f9ffef9f523248489c5d5296

Add versions/tags corresponding to Vuetify 2/3 and npm link in the Readme

Hello,

First of all, thank you for your work.

I'm upgrading a project from Vuetify 1.5 to 2.0 in the context of work. And I just think it would more clear if we can add a section in the readme in which we clarify which version / tag corresponds to Vuetify 2 and which one corresponds to Vuetify 3.

I saw that there's a tag for Vuetify 2. but it takes more lookups and clicks to understand,

image

Also a direct link to package in the npm website would be a good addition too.

Please tell me what do you guys think ? if you agree I can open a PR for it.

Thank you and have a nice day
Ali

Linting fails with infinite loop

I was hoping the next few beta releases would resolve this, however beta.3 doesn't seem to do it. When I add the plugin to my eslint config, I'm getting a loop of the following error until it fails:

(node:18696) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 VElement listeners added. Use emitter.setMaxListeners() to increase limit
error Command failed with exit code 1.

the eslintrc.js file looks like this:

// https://eslint.org/docs/user-guide/configuring

module.exports = {
  root: true,
  parserOptions: {
    parser: 'babel-eslint'
  },
  env: {
    browser: true,
    jquery: true
  },
  globals: {
    google: true
  },
  extends: [
    // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
    // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
    'plugin:vue/recommended',
    // https://github.com/standard/standard/blob/master/docs/RULES-en.md
    'standard'
  ],
  // required to lint *.vue files
  plugins: [
    'vue',
    'vuetify'
  ],
  // add your custom rules here
  rules: {
    // vuetify helper
    'vuetify/no-deprecated-classes': 'error',
    // allow async-await
    'generator-star-spacing': 'off',
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    "indent": 0,
    'curly': ['error', 'all'],

    // vue settings
    'vue/no-v-html': 0,
    'vue/require-default-prop': ['error'],
    'vue/script-indent':[
      "error",
      2,
      {
        "baseIndent": 1,
        "switchCase": 1,
      }
    ],
    'vue/html-indent':[
      "error",
      2
    ],
    "vue/singleline-html-element-content-newline": ["error", {
      "ignoreWhenNoAttributes": true,
      "ignoreWhenEmpty": true
    }],
    "vue/component-name-in-template-casing": ["error", "kebab-case"],
    "vue/html-closing-bracket-newline": ["error", {
      "singleline": "never",
      "multiline": "always"
    }],
    "vue/max-attributes-per-line": ["error", {
      "singleline": 1,
      "multiline": {
        "max": 1,
        "allowFirstLine": false
      }
    }],
    "vue/attributes-order": ["error", {
      "order": [
        "DEFINITION",
        "LIST_RENDERING",
        "CONDITIONALS",
        "RENDER_MODIFIERS",
        "GLOBAL",
        "UNIQUE",
        "TWO_WAY_BINDING",
        "OTHER_DIRECTIVES",
        "OTHER_ATTR",
        "EVENTS",
        "CONTENT"
      ]
    }],
    "vue/no-multi-spaces": ["error", {
      "ignoreProperties": false
    }],
    "vue/order-in-components": ["error", {
      "order": [
        "el",
        "name",
        "parent",
        "functional",
        ["delimiters", "comments"],
        ["components", "directives", "filters"],
        "extends",
        "mixins",
        "inheritAttrs",
        "model",
        ["props", "propsData"],
        "data",
        "computed",
        "watch",
        "LIFECYCLE_HOOKS",
        "methods",
        ["template", "render"],
        "renderError"
      ]
    }],
    "vue/multiline-html-element-content-newline": ["error"],
    "vue/html-closing-bracket-spacing": ["error"]
  }
}

Are one of the other rules interfering with it?

Interest in Pug Support

I'm making this issue to help with measuring interest in adding pug support to the linter plugin... Starting with myself. I would like this feature.

Fails on empty class

A component with a null class creates an error that is difficult to track down.

You should be able to reproduce with:

<template>
  <v-container>
    <v-layout class>
      <v-flex>Oops</v-flex>
    </v-layout>
  </v-container>
</template>

v-row & v-col

Hey, trying to upgrade to Vuetify 2.0.0 and I've installed eslint-plugin-vuetify via npm. When I add the rules vuetify/no-legacy-grid, my v-flex/v-layout tags are corrected to use v-col and v-row. However, I can't seem to find anything about these two new tags in the docs? Is this a future feature that hasn't yet been implemented in the latest release of Vuetify?

Thanks!

Cannot find module eslint-plugin-vuetify

Hello,

This plugin doesn't load anymore. I am always getting below error. Is anybody know how to solve this problem ?

Failed to load plugin 'vuetify' declared in '.eslintrc.js': Cannot find module 'eslint-plugin-vuetify';

You can find dev dependencies at below. One more thing setup is working proeperly but I am not sure but after npm install it hasn't worked anymore.

"devDependencies": {
"@nuxtjs/vuetify": "^1.11.3",
"babel-eslint": "^10.1.0",
"css-loader": "^5.1.0",
"eslint": "^7.21.0",
"eslint-config-prettier": "^8.1.0",
"eslint-loader": "^4.0.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^7.6.0",
"eslint-plugin-vuetify": "^1.0.0-beta.8",
"nodemon": "^1.18.9",
"postcss": "^8.2.6",
"postcss-import": "^13.0.0",
"postcss-loader": "^4.2.0",
"postcss-url": "^10.1.1",
"prettier": "^2.2.1",
"sass": "^1.32.8",
"style-loader": "^0.23.1",
"stylus": "^0.54.5",
"stylus-loader": "^3.0.2"
}

It can be used on pug templates !

Thanks to eslint-plugin-vue-pug, this plugin works for pug templates. I tested eslint configuration:

"extends": [
    "plugin:vue/vue3-recommended",
    "plugin:vue-pug/vue3-recommended",
    "plugin:vuetify/base"
 ]

so the doc should be updated accordingly

Error 'flat' has been removed

Version

"eslint-plugin-vuetify": "^2.0.1"

How to reproduce it

I've got this error from a v-text-field component, during Vue 3 migration. That component has a flat props.

However, "flat" is still in use for v-text-field.
v-text-field

Expected outcome

When it comes to v-text-field component, having flat props would not let eslint-plugin-vuetify show 'flat' has been removederrors.

Error while loading rule 'vuetify/no-deprecated-classes': context.parserServices.defineTemplateBodyVisitor is not a function

Hi guys
I have followed the install guide on a newly created project on Vuetify to. I have many different things but no matter what I do I get the following error:

~/Development/myrepos/newproject/src/main/newfrontend $ npm run lint


 ERROR  TypeError: Error while loading rule 'vuetify/no-deprecated-classes': context.parserServices.defineTemplateBodyVisitor is not a function
Occurred while linting /Users/and/Development/myrepos/newproject/src/main/newfrontend/.eslintrc.js
TypeError: Error while loading rule 'vuetify/no-deprecated-classes': context.parserServices.defineTemplateBodyVisitor is not a function
Occurred while linting /Users/and/Development/myrepos/newproject/src/main/newfrontend/.eslintrc.js
    at Object.create (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint-plugin-vuetify/lib/rules/no-deprecated-classes.js:52:35)
    at createRuleListeners (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/linter/linter.js:746:21)
    at /Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/linter/linter.js:916:31
    at Array.forEach (<anonymous>)
    at runRules (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/linter/linter.js:861:34)
    at Linter._verifyWithoutProcessors (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/linter/linter.js:1157:31)
    at Linter._verifyWithConfigArray (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/linter/linter.js:1255:21)
    at Linter.verify (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/linter/linter.js:1210:25)
    at Linter.verifyAndFix (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/linter/linter.js:1400:29)
    at verifyText (/Users/and/Development/myrepos/newproject/src/main/newfrontend/node_modules/eslint/lib/cli-engine/cli-engine.js:230:48)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] lint: `vue-cli-service lint`
npm ERR! Exit status 1`

I am using Vuetify version 2.2.11. Here are some other version details from package.json:

"devDependencies": {
    "@vue/cli-plugin-babel": "~4.2.0",
    "@vue/cli-plugin-eslint": "~4.2.0",
    "@vue/cli-service": "~4.2.0",
    "babel-eslint": "^10.0.3",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.1.2",
    "eslint-plugin-vuetify": "^1.0.0-beta.6",
    "sass": "^1.19.0",
    "sass-loader": "^8.0.0",
    "vue-cli-plugin-moment": "~0.1.1",
    "vue-cli-plugin-vuetify": "~2.0.5",
    "vue-template-compiler": "^2.6.11",
    "vuetify-loader": "^1.3.0"
  }

Not sure what kind of info to provide, please tell me if I should add anything.

Does anybody have any suggestions on how to fix this?

Thanks!

Kind regards,
Anders

Tslint?

Probably a stupid question. But we use TSlint and only have the tslint.json file. Can we use the eslint-plugin-vuetify settings here somehow?

[Bug] v-snackbar elevation

<v-snackbar elevation="24"/> is transformed to <v-snackbar content-class="elevation-24">
<v-snackbar :elevation="24"/> is transformed to <v-snackbar :content-class="24 && 'elevation-24'">

Both should be transformed to <v-snackbar class="elevation-24"> (class instead of content-class)

And if class already exists it should be added to class (class="some-class elevation-24")

Not integrating with Vetur in VS Code?

When I run a lint, I get the expected errors, but if I open up SFC's in vscode the errors for this eslint plugin do not show up.

Is there something else that needs to be done to get this working in VSCode with Vetur?

Can I convert my templates automatically?

Hi! Is there any way to convert templates automatically? Or this plugin only informs about problems?

Looks like I can run Eslint fix to convert my lemplates.

vue-cli-service lint --fix

Is it right way?

<v-subheader> replaced by <[object Object]> when also using plugin:nuxt/recommended

.eslintrc.js

module.exports = {
  extends: ["plugin:nuxt/recommended", "plugin:vuetify/base"],
};

Template in a .vue file contains:

<v-subheader> </v-subheader>

When running lintfix ("lint:js": "eslint --ext .js,.ts,.vue --ignore-path .gitignore .", "lintfix": "npm run lint:js -- --fix"), it gets replaced by:

<[object Object]> </[object Object]>

VS Code popup:

image

Used versions:

"eslint-plugin-nuxt": "^4.0.0",
"eslint-plugin-vuetify": "^2.0.0-beta.3",

Homepage/versions as listed on npmjs.com

In vscode, the online package info fetched by the npm extension is garbled for eslint-plugin-vuetify and is missing the handy link to this repository:
image

For vuetify this appears properly:
image

Never published a package so not really sure what's wrong.

Also thanks for releasing beta.6, the warnings after an npm install were annoying. Unfortunately I didn't know about this release until now due to beta.5 being tagged as latest and beta.6 tagged as beta for the versions as listed on npmjs.com. This confused the Version Lens extension i'm using in vscode under default settings.

With beta.5 installed and default settings:
image

It wasn't until I turned on additional functionality in the extension that it then showed me another beta had been released:
image

Then going back to default settings after beta.6 is installed:
image

[Feat] v-expansion-panels variant

<v-expansion-panels accordion /> should be transformed to <v-expansion-panels variant="accordion" />

The same goes for inset and popout

Add v2.3 typography class changes to no-deprecated-classes rule

As per v2.3 release notes can the following be added to no deprecated classes rule.

.display-4 is now .text-h1
.display-3 is now .text-h2
.display-2 is now .text-h3
.display-1 is now .text-h4
.headline is now .text-h5
.title is now .text-h6
.subtitle-1 is now .text-subtitle-1
.subtitle-2 is now .text-subtitle-2
.body-1 is now .text-body-1
.body-2 is now .text-body-2
.caption is now .text-caption
.overline is now .text-overline

eslint 7 support

Any chance of getting a release officially supporting eslint 7 so the noise about peer dependencies is removed please? Not seeing any issues currently using this plugin with eslint 7.

npm WARN [email protected] requires a peer of eslint@^6.0.0 but none is installed. You must install peer dependencies yourself.

`v-range-slider` incorrectly reports `@end` event as deprecated

When I try to use the @end event, I get this message (vuetify 3.4.0, eslint-plugin-vueitfy 2.1.0):

VRangeSlider: @end has been removed vuetify/no-deprecated-events

However, @end does work and has been ported according to this PR. It is also listed in the documentation. However, I also found this vuetify issue, which remains open for some reason.

This also applies to the @start event and v-slider componenet.

no-deprecated-props rule ESLint error

eslint-plugin-vuetify v1.0.0

sample.vue

<template>
  <v-text-field  v-bind="$attrs" />
</template>

got errror:

[Error - 08:31:36] ESLint stack trace:
[Error - 08:31:36] TypeError: Cannot read property 'rawName' of null
Occurred while linting C:\Vue\Sample.vue:1
    at EventEmitter.VAttribute (C:\Vue\node_modules\eslint-plugin-vuetify\lib\rules\no-deprecated-props.js:135:41)
    at EventEmitter.emit (events.js:327:22)
    at NodeEventGenerator.applySelector (C:\Vue\node_modules\vue-eslint-parser\index.js:3309:26)
    at NodeEventGenerator.applySelectors (C:\Vue\node_modules\vue-eslint-parser\index.js:3323:22)
    at NodeEventGenerator.enterNode (C:\Vue\node_modules\vue-eslint-parser\index.js:3331:14)
    at traverse (C:\Vue\node_modules\vue-eslint-parser\index.js:115:13)
    at traverse (C:\Vue\node_modules\vue-eslint-parser\index.js:122:21)
    at traverse (C:\Vue\node_modules\vue-eslint-parser\index.js:127:13)
    at traverse (C:\Vue\node_modules\vue-eslint-parser\index.js:122:21)
    at traverseNodes (C:\Vue\\node_modules\vue-eslint-parser\index.js:133:5)

Error on install

When running npm install eslint-plugin-vuetify --save-dev I get:

Found: [email protected]

Could not resolve dependency:
npm ERR! peer eslint@"^6.0.0 | ^7.0.0" from [email protected]

This does really make sense, does it? I have 7.19.0 installed which should be fine.

I am using npm 7.5.3.

Any ideas?

Release new version

Hi @KaelWD, could you release a new version with the latest fixes? I'm still getting an error for the VOtpInput

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.