/** * ESLint Flat 配置(ESLint 9) * 适用于:Vue 3 + TypeScript + Prettier */ import pluginVue from 'eslint-plugin-vue' // Vue 官方 ESLint 插件 import { defineConfigWithVueTs, // 用于组合 Vue + TS 的 Flat 配置 vueTsConfigs, // 官方提供的 TypeScript 推荐规则集合 } from '@vue/eslint-config-typescript' import prettierPlugin from 'eslint-plugin-prettier' // 将 Prettier 作为 ESLint 规则使用 import prettierConfig from 'eslint-config-prettier' // 关闭与 Prettier 冲突的 ESLint 规则 export default defineConfigWithVueTs( // 1. 全局忽略配置(必须放在最前面) { // 不对构建产物和依赖目录进行 ESLint 校验 ignores: ['dist/**', 'node_modules/**'], }, // 2. Vue 相关基础规则(包含模板语法支持) pluginVue.configs['flat/essential'], // 3. TypeScript 推荐规则(脚本逻辑部分) vueTsConfigs.recommended, // 4. Prettier 相关配置:只负责格式化,不干扰语义规则 { // 注册需要用到的插件 plugins: { prettier: prettierPlugin, // Prettier 插件 }, // 自定义规则 rules: { // 关闭与 Prettier 冲突的 ESLint 规则 ...prettierConfig.rules, // 将 Prettier 的格式化结果作为 ESLint 的告警输出 'prettier/prettier': 'warn', }, }, // 5. 自定义规则 { rules: { // Vue 规则 'vue/multi-word-component-names': 'off', // TypeScript 规则 '@typescript-eslint/no-explicit-any': 'off', }, }, )