.eslintrc.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * @type {import("eslint").Linter.Config}
  3. */
  4. module.exports = {
  5. root: true,
  6. env: {
  7. node: true,
  8. browser: true,
  9. "vue/setup-compiler-macros": true,
  10. },
  11. parser: "@typescript-eslint/parser",
  12. parserOptions: {
  13. ecmaVersion: "2022",
  14. sourceType: "module",
  15. ecmaFeatures: {
  16. jsx: true,
  17. },
  18. tsconfigRootDir: "./",
  19. project: ["./tsconfig.json"],
  20. extraFileExtensions: [".vue"],
  21. },
  22. plugins: ["@typescript-eslint"],
  23. extends: [
  24. "eslint:recommended",
  25. "plugin:@typescript-eslint/recommended",
  26. "plugin:@typescript-eslint/recommended-requiring-type-checking",
  27. "plugin:vue/vue3-recommended",
  28. "prettier",
  29. ],
  30. rules: {
  31. // "vue/script-setup-uses-vars": "error",
  32. },
  33. // ignorePatterns: [".eslintrc.js"],
  34. overrides: [
  35. {
  36. files: ["src/**/**.vue"],
  37. parser: "vue-eslint-parser",
  38. parserOptions: {
  39. parser: {
  40. // Script parser for `<script>`
  41. js: "espree",
  42. // Script parser for `<script lang="ts">`
  43. ts: "@typescript-eslint/parser",
  44. // Script parser for vue directives (e.g. `v-if=` or `:attribute=`)
  45. // and vue interpolations (e.g. `{{variable}}`).
  46. // If not specified, the parser determined by `<script lang ="...">` is used.
  47. "<template>": "espree",
  48. },
  49. },
  50. globals: {
  51. $ref: true,
  52. $computed: true,
  53. },
  54. },
  55. ],
  56. };