import eslint from '@eslint/js' import eslintConfigPrettier from 'eslint-config-prettier' import eslintPluginVue from 'eslint-plugin-vue' import globals from 'globals' import tseslint from 'typescript-eslint' export default tseslint.config( { ignores: [ '**/dist/**', '**/node_modules/**', '**/coverage/**', '**/*.d.ts', // 本地验证工具脚本(CommonJS,跑在 Node 里,不参与构建)。 // 它们刻意用 require / 空 catch,套前端项目的 TS 规则只会产生噪音。 'scripts/**', ], }, eslint.configs.recommended, ...tseslint.configs.recommended, ...eslintPluginVue.configs['flat/recommended'], { files: ['**/*.{ts,tsx,vue}'], languageOptions: { globals: globals.browser, parserOptions: { parser: tseslint.parser, }, }, }, { files: ['**/*.{js,mjs,cjs}'], languageOptions: { globals: globals.node, }, }, { files: ['vite.config.ts', '*.config.{js,mjs,cjs,ts}'], languageOptions: { globals: globals.node, }, }, { files: ['**/*.vue'], languageOptions: { parserOptions: { parser: tseslint.parser, }, }, rules: { 'vue/multi-word-component-names': 'off', }, }, { rules: { '@typescript-eslint/no-explicit-any': 'warn', }, }, eslintConfigPrettier, )