// https://eslint.org/docs/user-guide/configuring module.exports = { root: true, parserOptions: { parser: '@typescript-eslint/parser', extraFileExtensions: ['.vue'], }, env: { browser: true, }, globals: { process: 'readonly', }, 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', // 'plugin:vue/recommended', 'eslint:recommended', 'plugin:@typescript-eslint/eslint-recommended', 'prettier', ], // required to lint *.vue files plugins: ['vue', '@typescript-eslint'], overrides: [ { files: ['*.ts', '*.tsx'], rules: { 'no-unused-vars': 'off', }, }, ], // add your custom rules here rules: { // allow async-await 'generator-star-spacing': 'off', // allow debugger during development 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', indent: 'off', 'space-before-function-paren': 'off', 'comma-dangle': 'off', // vue rules 'vue/require-prop-types': 'off', //todo: should we do this? 'vue/require-default-prop': 'off', //todo: should we do this? 'vue/attributes-order': [ 'error', { order: [ 'OTHER_ATTR', 'DEFINITION', 'LIST_RENDERING', 'CONDITIONALS', 'RENDER_MODIFIERS', 'GLOBAL', 'UNIQUE', 'TWO_WAY_BINDING', 'OTHER_DIRECTIVES', 'EVENTS', 'CONTENT', ], }, ], 'vue/multi-word-component-names': [ 'off', { ignores: [], }, ], 'vue/order-in-components': [ 'error', { order: [ 'el', 'name', 'parent', 'functional', ['delimiters', 'comments'], ['props', 'propsData'], 'mixins', ['components', 'directives', 'filters'], 'data', 'extends', 'inheritAttrs', 'model', 'computed', 'watch', 'LIFECYCLE_HOOKS', 'methods', ['template', 'render'], 'renderError', ], }, ], }, };