1.14.5 • Published 2 years ago

eslint-plugin-frabbit-vue v1.14.5

Weekly downloads
23
License
MIT
Repository
-
Last release
2 years 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

2 years ago

1.14.0

2 years ago

1.14.5

2 years ago

1.14.2

2 years ago

1.12.0

2 years ago

1.13.9

2 years ago

1.11.14

2 years ago

1.11.15

2 years ago

1.11.12

2 years ago

1.11.13

2 years ago

1.11.10

2 years ago

1.11.11

2 years ago

1.11.8

3 years ago

1.11.7

3 years ago

1.11.9

3 years ago

1.11.4

3 years ago

1.11.6

3 years ago

1.11.5

3 years ago

1.10.5

3 years ago

1.10.4

3 years ago

1.11.0

3 years ago

1.11.3

3 years ago

1.11.2

3 years ago

1.11.1

3 years ago

1.10.3

3 years ago

1.10.2

3 years ago

1.9.0

3 years ago

1.10.1

3 years ago

1.10.0

3 years ago

1.8.5

4 years ago

1.8.4

4 years ago

1.8.3

4 years ago

1.8.2

4 years ago

1.8.1

4 years ago

1.8.0

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.7.0

4 years ago

1.5.0

4 years ago

1.4.15

5 years ago

1.4.11

5 years ago

1.4.12

5 years ago

1.4.10

5 years ago

1.4.9

5 years ago

1.4.6

5 years ago

1.4.5

5 years ago

1.4.7

5 years ago

1.4.3

5 years ago

1.4.2

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.31

5 years ago

1.0.30

5 years ago

1.0.28

5 years ago

1.0.26

5 years ago

1.0.25

5 years ago

1.0.27

5 years ago

1.0.23

5 years ago

1.0.22

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.15

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago