module.exports = { env: { browser: true, es2021: true }, globals: { defineProps: 'readonly', defineEmits: 'readonly', defineExpose: 'readonly', withDefaults: 'readonly', PROJECT_BUILD_TIME: 'readonly', AMap: 'readonly', BMap: 'readonly', TMap: 'readonly' }, parser: 'vue-eslint-parser', parserOptions: { ecmaVersion: 12, parser: '@typescript-eslint/parser', sourceType: 'module' }, plugins: ['vue', '@typescript-eslint'], extends: ['plugin:vue/vue3-recommended', 'airbnb-base', '@vue/typescript/recommended', 'plugin:prettier/recommended'], rules: { 'import/extensions': 'off', 'import/no-extraneous-dependencies': 'off', 'import/no-unresolved': 0, 'import/order': [ 'error', { 'newlines-between': 'never', groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], pathGroups: [ { pattern: 'vue', group: 'external', position: 'before' }, { pattern: 'vue-router', group: 'external', position: 'before' }, { pattern: 'pinia', group: 'external', position: 'before' }, { pattern: 'naive-ui', group: 'external', position: 'before' }, { pattern: '@/config', group: 'internal', position: 'before' }, { pattern: '@/settings', group: 'internal', position: 'before' }, { pattern: '@/enum', group: 'internal', position: 'before' }, { pattern: '@/plugins', group: 'internal', position: 'before' }, { pattern: '@/layouts', group: 'internal', position: 'before' }, { pattern: '@/layouts', group: 'internal', position: 'before' }, { pattern: '@/views', group: 'internal', position: 'before' }, { pattern: '@/components', group: 'internal', position: 'before' }, { pattern: '@/router', group: 'internal', position: 'before' }, { pattern: '@/store', group: 'internal', position: 'before' }, { pattern: '@/composables', group: 'internal', position: 'before' }, { pattern: '@/hooks', group: 'internal', position: 'before' }, { pattern: '@/service', group: 'internal', position: 'before' }, { pattern: '@/utils', group: 'internal', position: 'before' }, { pattern: '@/assets', group: 'internal', position: 'before' }, { pattern: '@/**', group: 'internal', position: 'before' }, { pattern: '@/interface', group: 'internal', position: 'before' } ], pathGroupsExcludedImportTypes: ['vue', 'vue-router', 'pinia', 'naive-ui'] } ], 'import/prefer-default-export': 0, 'max-classes-per-file': 0, 'no-shadow': 0, 'no-unused-vars': 'off', 'no-use-before-define': 'off', 'vue/comment-directive': 0, 'vue/multi-word-component-names': 0, '@typescript-eslint/ban-types': 'off', '@typescript-eslint/ban-ts-ignore': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-explicit-any': 0, '@typescript-eslint/no-inferrable-types': 0, '@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-unused-vars': ['warn', { ignoreRestSiblings: true, varsIgnorePattern: 'Ignored' }], '@typescript-eslint/no-use-before-define': ['error', { classes: true, functions: false, typedefs: false }], '@typescript-eslint/no-var-requires': 'off' } };