A plugin for ESLint to keep order of component names.
The rule is auto-fixable.
$ npm install --save-dev eslint @jay-es/eslint-plugin-vue-sort-components
or
$ yarn add -dev @jay-es/eslint-plugin-vue-sort-components
Add plugin:@jay-es/vue-sort-components/recommended
to the extends section of your .eslintrc
configuration file.
{
"extends": [
// ...
"plugin:@jay-es/vue-sort-components/recommended"
]
}
Add @jay-es/vue-sort-components
to the plugins section of your .eslintrc
configuration file.
{
"plugins": ["@jay-es/vue-sort-components"]
}
Then configure the rule under the rules section.
{
"rules": {
"@jay-es/vue-sort-components/vue-sort-components": "error"
}
}
This rule checks property definitions of object expressions named components
and verifies that all keys are sorted alphabetically.
👎 Examples of incorrect code for this rule:
export default defineComponent({
components: { Foo, Bar, Baz },
});
// spreads must be grouped at the top
export default defineComponent({
components: { Bar, Baz, Foo, ...others },
});
// not only in Vue-specific context
const myObject = {
components: { Foo, Bar, Baz },
};
👍 Examples of correct code for this rule:
export default defineComponent({
components: { Bar, Baz, Foo },
});
// spreads must be grouped at the top
export default defineComponent({
components: { ...others, Bar, Baz, Foo },
});
// not only in Vue-specific context
const myObject = {
components: { Bar, Baz, Foo },
};
This rule accepts a configuration object:
{
"@jay-es/vue-sort-components/vue-sort-components": ["error", { sortSpreads: false }]
}
sortSpreads
- iftrue
, enforce spread properties to be sorted. Default isfalse
.
👎 Examples of incorrect code for the { sortSpreads: true }
option:
export default defineComponent({
components: { ...others2, ...others1, Bar, Baz },
});
👍 Examples of correct code for the { sortSpreads: true }
option:
export default defineComponent({
components: { ...others1, ...others2, Bar, Baz },
});