// ESLint v10 flat config。 // 覆盖范围:src/、test/ 下的 .vue/.ts/.tsx 文件。dist/、node_modules、配置类 // 文件 (vite.config.ts、postcss.config.js 等) 默认走 ignore。 import js from '@eslint/js' import tseslint from 'typescript-eslint' import vue from 'eslint-plugin-vue' import vueParser from 'vue-eslint-parser' export default [ { ignores: [ 'dist/**', 'node_modules/**', '**/*.d.ts', 'src/**/*.js', 'test/**/*.js', 'vite.config.js', ], }, js.configs.recommended, ...tseslint.configs.recommended, ...vue.configs['flat/recommended'], { files: ['**/*.vue'], languageOptions: { parser: vueParser, parserOptions: { parser: tseslint.parser, ecmaVersion: 2022, sourceType: 'module', }, }, }, { files: ['**/*.{ts,tsx,vue}'], rules: { 'vue/multi-word-component-names': 'off', // TypeScript/vue-tsc 已经做名字解析;no-undef 在 .vue 内对 DOM 全局 // (DragEvent / HTMLElement 等) 误报,关掉走 TS 校验。 'no-undef': 'off', '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], }, }, ]