module.exports = { root: true, env: { es6: true, node: true, browser: true, }, extends: ['eslint:recommended', 'plugin:vue/vue3-recommended', 'plugin:prettier/recommended'], plugins: ['prettier', 'vue'], parser: 'vue-eslint-parser', parserOptions: { ecmaVersion: 'latest', sourceType: 'module', ecmaFeatures: { jsx: true, impliedStrict: true, }, }, rules: { 'no-alert': 'warn', 'no-debugger': 'warn', 'no-undef': 'error', 'no-else-return': 'error', 'no-console': 'off', 'vue/no-v-html': 'off', 'vue/html-self-closing': [ 'warn', { html: { void: 'any', normal: 'any', component: 'always', }, svg: 'always', math: 'always', }, ], 'vue/multi-word-component-names': 'off', 'vue/order-in-components': [ 'warn', { order: [ 'el', 'name', 'key', 'parent', 'functional', ['delimiters', 'comments'], ['components', 'directives', 'filters'], 'extends', 'mixins', ['provide', 'inject'], 'ROUTER_GUARDS', 'layout', 'middleware', 'validate', 'scrollToTop', 'transition', 'loading', 'inheritAttrs', 'model', ['props', 'propsData'], 'emits', 'setup', 'fetch', 'asyncData', 'data', 'head', 'computed', 'watch', 'watchQuery', 'LIFECYCLE_HOOKS', 'methods', ['template', 'render'], 'renderError', ], }, ], 'vue/attributes-order': [ 'warn', { order: [ 'DEFINITION', 'LIST_RENDERING', 'CONDITIONALS', 'RENDER_MODIFIERS', 'GLOBAL', 'UNIQUE', 'TWO_WAY_BINDING', 'OTHER_DIRECTIVES', 'OTHER_ATTR', 'EVENTS', 'CONTENT', ], alphabetical: true, }, ], 'prettier/prettier': 'error', indent: [0, 4], eqeqeq: [2, 'always'], semi: [2, 'always'], quotes: [2, 'single'], }, globals: { arguments: true, defineProps: true, defineEmits: true, defineExpose: true, resolveDynamicComponent: true, }, };