import js from '@eslint/js' import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import tseslint from 'typescript-eslint' import { defineConfig, globalIgnores } from 'eslint/config' export default defineConfig([ globalIgnores(['dist']), { files: ['**/*.{ts,tsx}'], extends: [ js.configs.recommended, tseslint.configs.recommended, reactHooks.configs.flat.recommended, reactRefresh.configs.vite, ], languageOptions: { globals: globals.browser, }, }, { // Dependency direction: features -> shared, never the reverse (see WEB.md "代码结构"). files: ['src/{components,hooks,utils,services,i18n,types,constants}/**/*.{ts,tsx}'], rules: { 'no-restricted-imports': [ 'error', { patterns: [ { group: ['**/features/**'], message: '共享层不得依赖 features/(依赖方向:features → 共享层)。把共用部分下沉到共享层。', }, ], }, ], }, }, ])