module.exports = { // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy // This option interrupts the configuration hierarchy at this file // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) root: true, env: { browser: true, es2022: true, node: true, 'vue/setup-compiler-macros': true, }, // Rules order is important, please avoid shuffling them extends: [ // Base ESLint recommended rules 'eslint:recommended', // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#usage // ESLint typescript rules 'plugin:@typescript-eslint/recommended', // Vue ESLint recommended rules // 'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention) // 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability) // 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead) 'plugin:vue/vue3-recommended', // https://github.com/prettier/eslint-config-prettier#installation // usage with Prettier, provided by 'eslint-config-prettier'. 'plugin:prettier/recommended', // Recommended ], parser: 'vue-eslint-parser', parserOptions: { ecmaVersion: 2022, parser: '@typescript-eslint/parser', ecmaFeatures: { jsx: false, }, }, plugins: [ // required to apply rules which need type information '@typescript-eslint', // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files // required to lint *.vue files 'vue', // https://github.com/typescript-eslint/typescript-eslint/issues/389#issuecomment-509292674 // Prettier has not been included as plugin to avoid performance impact // add it as an extension for your IDE ], rules: { semi: [1], '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/no-empty-object-type': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unused-expressions': 'off', '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/no-this-alias': 'off', 'vue/multi-word-component-names': 'off' /* 禁用 vue 组件名称检查规则 */, 'no-prototype-builtins': 'off', 'prefer-rest-params': 'off', 'no-control-regex': 'off', 'no-case-declarations': 'off', 'vue/no-v-html': 'off' }, };