/* eslint-env node */ require('@rushstack/eslint-patch/modern-module-resolution') module.exports = { // 继承的规则配置 extends: [ 'eslint:recommended', 'plugin:vue/vue3-recommended', '@electron-toolkit', '@electron-toolkit/eslint-config-ts/eslint-recommended', '@vue/eslint-config-typescript/recommended', ], rules: { // === 基础规则 === // 忽略使用 any 类型的错误 '@typescript-eslint/no-explicit-any': 'off', // debugger 'no-debugger': 'warn', // console 'no-console': 'warn', // 优先使用箭头函数 'prefer-arrow-callback': 'warn', // 引号 'quotes': ['warn', 'single'], // 三元表达式 'multiline-ternary': ['warn', 'never'], // === Vue 相关规则 === // html 缩进 'vue/html-indent': ['warn', 4, { 'alignAttributesVertically': false }], // html 标签闭合 'vue/html-closing-bracket-spacing': ['warn', { 'selfClosingTag': 'always' }], // 每行最大属性数 'vue/max-attributes-per-line': ['warn', { 'singleline': { 'max': 3 }, 'multiline': { 'max': 3 } }], // 属性换行设置 'vue/first-attribute-linebreak': ['warn', { 'singleline': 'ignore', 'multiline': 'ignore' }], // html 标签换行 'vue/html-closing-bracket-newline': ['warn', { 'multiline': 'never' }], // html 引号 'vue/html-quotes': [ 'warn', 'double', { 'avoidEscape': true } ], // v-for 分隔符 'vue/v-for-delimiter-style': ['error', 'in'], // 组件 name 属性 'vue/require-name-property': 'warn', // 属性简写 'vue/prefer-true-attribute-shorthand': 'warn', // prop 类型 'vue/require-prop-types': 'off', // v-html 'vue/no-v-html': 'off', }, }