eslint.config.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import pluginVue from 'eslint-plugin-vue'
  2. import tsParser from '@typescript-eslint/parser'
  3. import tsPlugin from '@typescript-eslint/eslint-plugin'
  4. export default [
  5. // Global ignores
  6. {
  7. ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
  8. },
  9. // Vue recommended rules
  10. ...pluginVue.configs['flat/essential'],
  11. // TypeScript configuration for .ts/.tsx files
  12. {
  13. files: ['**/*.{ts,tsx}'],
  14. languageOptions: {
  15. parser: tsParser,
  16. parserOptions: {
  17. ecmaVersion: 'latest',
  18. sourceType: 'module',
  19. },
  20. },
  21. plugins: {
  22. '@typescript-eslint': tsPlugin,
  23. },
  24. rules: {
  25. ...tsPlugin.configs.recommended.rules,
  26. '@typescript-eslint/no-explicit-any': 'off',
  27. '@typescript-eslint/no-unused-vars': 'warn'
  28. },
  29. },
  30. // TypeScript configuration for .vue files
  31. {
  32. files: ['**/*.vue'],
  33. languageOptions: {
  34. parserOptions: {
  35. parser: tsParser,
  36. ecmaVersion: 'latest',
  37. sourceType: 'module',
  38. extraFileExtensions: ['.vue'],
  39. },
  40. },
  41. plugins: {
  42. '@typescript-eslint': tsPlugin,
  43. },
  44. rules: {
  45. ...tsPlugin.configs.recommended.rules,
  46. 'vue/multi-word-component-names': 'off',
  47. '@typescript-eslint/no-explicit-any': 'off',
  48. '@typescript-eslint/no-unused-vars': 'warn'
  49. },
  50. },
  51. ]