eslint.config.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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(
  33. 'plugin:prettier/recommended',
  34. 'prettier',
  35. './.eslintrc-auto-import.json',
  36. ),
  37. oxlint.configs['flat/recommended'],
  38. {
  39. rules: {
  40. 'vue/multi-word-component-names': 0
  41. }
  42. },
  43. // 忽略文件
  44. {
  45. ignores: [
  46. '**/dist',
  47. './src/main.ts',
  48. '.vscode',
  49. '.idea',
  50. '*.sh',
  51. '**/node_modules',
  52. '*.md',
  53. '*.woff',
  54. '*.woff',
  55. '*.ttf',
  56. 'yarn.lock',
  57. 'package-lock.json',
  58. '/public',
  59. '/docs',
  60. '**/output',
  61. '.husky',
  62. '.local',
  63. '/bin',
  64. 'Dockerfile'
  65. ]
  66. }
  67. ]