eslint.config.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import path from 'path'
  2. import globals from 'globals'
  3. import pluginJs from '@eslint/js'
  4. import pluginVue from 'eslint-plugin-vue'
  5. import pluginPrettier from 'eslint-plugin-prettier'
  6. import oxlint from 'eslint-plugin-oxlint'
  7. import { FlatCompat } from '@eslint/eslintrc'
  8. import { fileURLToPath } from 'url'
  9. const __filename = fileURLToPath(import.meta.url)
  10. const __dirname = path.dirname(__filename)
  11. const compat = new FlatCompat({
  12. baseDirectory: __dirname
  13. })
  14. /** @type {import('eslint').Linter.Config[]} */
  15. export default [
  16. {
  17. files: ['**/*.{js,mjs,cjs,vue}']
  18. },
  19. {
  20. languageOptions: {
  21. globals: {
  22. ...globals.browser,
  23. ...globals.node
  24. }
  25. },
  26. plugins: {
  27. pluginPrettier
  28. }
  29. },
  30. pluginJs.configs.recommended,
  31. ...pluginVue.configs['flat/essential'],
  32. ...compat.extends('plugin:prettier/recommended', 'prettier', './.eslintrc-auto-import.json'),
  33. oxlint.configs['flat/recommended'],
  34. {
  35. rules: {
  36. 'vue/multi-word-component-names': 0
  37. }
  38. },
  39. // 忽略文件
  40. {
  41. ignores: [
  42. '**/dist',
  43. './src/main.ts',
  44. '.vscode',
  45. '.idea',
  46. '*.sh',
  47. '**/node_modules',
  48. '*.md',
  49. '*.woff',
  50. '*.woff',
  51. '*.ttf',
  52. 'yarn.lock',
  53. 'package-lock.json',
  54. '/public',
  55. '/docs',
  56. '**/output',
  57. '.husky',
  58. '.local',
  59. '/bin',
  60. 'Dockerfile'
  61. ]
  62. }
  63. ]