import { globalIgnores } from 'eslint/config' import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript' import pluginVue from 'eslint-plugin-vue' import pluginVitest from '@vitest/eslint-plugin' import skipFormatting from '@vue/eslint-config-prettier/skip-formatting' import autoImportConfig from './.eslintrc-auto-import.json' with { type: 'json' } // To allow more languages other than `ts` in `.vue` files, uncomment the following lines: // import { configureVueProject } from '@vue/eslint-config-typescript' // configureVueProject({ scriptLangs: ['ts', 'tsx'] }) // More info at https://github.com/vuejs/eslint-config-typescript/#advanced-setup export default defineConfigWithVueTs( { name: 'app/files-to-lint', files: ['**/*.{ts,mts,tsx,vue}'], }, globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']), pluginVue.configs['flat/essential'], vueTsConfigs.recommended, { ...pluginVitest.configs.recommended, files: ['src/**/__tests__/*'], }, skipFormatting, { name: 'app/custom-rules', files: ['**/*.{ts,mts,tsx,vue}'], rules: { 'vue/multi-word-component-names': 'off', } }, { name: 'auto-import-globals', files: ['**/*.{ts,mts,tsx,vue}'], languageOptions: { globals: { ...(autoImportConfig.globals || {}), testGlobal: 'readonly' // 手动添加一个测试变量 } }, rules: { 'no-undef': 'off', // 确保关闭 no-undef 规则 '@typescript-eslint/no-undef': 'off' } } )