1.14.5 • Published 8 months ago

eslint-plugin-frabbit-vue v1.14.5

Weekly downloads
23
License
MIT
Repository
-
Last release
8 months ago

eslint-plugin-frabbit-vue

internal frabbit eslint rules for Vue.js

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-frabbit-vue:

$ npm install eslint-plugin-frabbit-vue --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-frabbit-vue globally.

Usage

Add frabbit-vue to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

{
    "plugins": [
        "frabbit-vue"
    ]
}

Then configure the rules you want to use under the rules section.

module.exports = {
  "rules": {
    "frabbit-vue/vue-no-unused-methods": "error",
    "frabbit-vue/vue-no-unused-properties": "error",
    "frabbit-vue/vue-no-unused-vuex-methods": "error",
    "frabbit-vue/vue-no-unused-vuex-properties": "error",
    "frabbit-vue/vue-static-class-order-ext": "error",
    "frabbit-vue/require-attributes": [
      "error",
      {
        "img": {
          /**
           * this attributes requred to be with values
           */
          "value": ["width", "height"],
          /**
           * this attributes required to be at list without value
           */
          "empty": ['data-my-extra-attribute'],
          /**
           * user callback, wich is another way to set rules
           * attrs here is object with attributes, like
           *   {
           *     src: 'img.png',
           *     width: '100',
           *     height: '100',
           *   }
           * this callback should return one of the:
           *  - true - no error
           *  - false - error, will says that it is callback error
           *  - string - error with returned string
           *  - object - new attributes object, will replace ALL ATRIBUTES
           *
           *  could be used for example to force change src to v-lazy directive on images
           */
          callback: 
            (attrs) => {

            if (attrs.src) {
              const src = attrs.src
              delete attrs.src
              attrs['v-lazy'] = attrs['v-lazy'] || `{src:'${src}'}`
              return attrs
            }
            return true
          }
        }
      },
      
    ]
  }
}

Plugin adds Rules

Rules based on https://github.com/learningequality/kolibri tools, which packages seems to be abandoned:

Added fix mode, unused properties a commented

  • frabbit-vue/vue-no-unused-methods - (fixable) checks for unused methods
  • frabbit-vue/vue-no-unused-properties - (fixable) checks for unused props, data, asyncData(Nuxt.js) and computed
  • frabbit-vue/vue-no-unused-vuex-methods - (fixable) checks for unused mapActions, mapMutations
  • frabbit-vue/vue-no-unused-vuex-properties - (fixable) checks for unused mapGetters

Custom vue eslint rules

  • frabbit-vue/vue-static-class-order-ext - (fixable) same as vue/static-class-order but takes into account "-", "_" class prefixes and puts them in the end, for example class="a-class b-class -a-modifier -b-modifier"

Additional rules

  • frabbit-vue/prefer-async-import - (fixable) forces to use async component import, when component have v-if or placed inside client-only/lazy-hydrate () => import('component')
  • frabbit-vue/no-unnecessary-style-lang - (fixable) Alpha! removes unnecessary lang="scss" if styles inside doesn't changes during scss compilation. This disables sass-loader for component and can speed up building.

Important

Vue components templates should be html, pug is not supported by vue-eslint-parser. By the way most plugins not support pug for this reason

Config

Plugin adds config recommended, wich is internal config for frabbit developers.

1.14.1

8 months ago

1.14.0

8 months ago

1.14.5

8 months ago

1.14.2

8 months ago

1.12.0

9 months ago

1.13.9

9 months ago

1.11.14

1 year ago

1.11.15

1 year ago

1.11.12

1 year ago

1.11.13

1 year ago

1.11.10

1 year ago

1.11.11

1 year ago

1.11.8

1 year ago

1.11.7

1 year ago

1.11.9

1 year ago

1.11.4

2 years ago

1.11.6

2 years ago

1.11.5

2 years ago

1.10.5

2 years ago

1.10.4

2 years ago

1.11.0

2 years ago

1.11.3

2 years ago

1.11.2

2 years ago

1.11.1

2 years ago

1.10.3

2 years ago

1.10.2

2 years ago

1.9.0

2 years ago

1.10.1

2 years ago

1.10.0

2 years ago

1.8.5

3 years ago

1.8.4

3 years ago

1.8.3

3 years ago

1.8.2

3 years ago

1.8.1

3 years ago

1.8.0

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.7.0

3 years ago

1.5.0

3 years ago

1.4.15

3 years ago

1.4.11

4 years ago

1.4.12

4 years ago

1.4.10

4 years ago

1.4.9

4 years ago

1.4.6

4 years ago

1.4.5

4 years ago

1.4.7

4 years ago

1.4.3

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.28

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.27

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.20

4 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.15

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago