module.exports = { root: true, env: { node: true }, globals: { // Ref sugar (take 2) $: "readonly", $$: "readonly", $ref: "readonly", $shallowRef: "readonly", $computed: "readonly", // index.d.ts // global.d.ts Fn: "readonly", PromiseFn: "readonly", RefType: "readonly", LabelValueOptions: "readonly", EmitType: "readonly", TargetContext: "readonly", ComponentElRef: "readonly", ComponentRef: "readonly", ElRef: "readonly", global: "readonly", ForDataType: "readonly", ComponentRoutes: "readonly", // script setup defineProps: "readonly", defineEmits: "readonly", defineExpose: "readonly", withDefaults: "readonly" }, extends: [ "plugin:vue/vue3-essential", "eslint:recommended", "@vue/typescript/recommended", "@vue/prettier", "@vue/eslint-config-typescript" ], parser: "vue-eslint-parser", parserOptions: { parser: "@typescript-eslint/parser", ecmaVersion: 2020, sourceType: "module", jsxPragma: "React", ecmaFeatures: { jsx: true } }, overrides: [ { files: ["*.ts", "*.vue"], rules: { "no-undef": "off" } }, { files: ["*.vue"], parser: "vue-eslint-parser", parserOptions: { parser: "@typescript-eslint/parser", extraFileExtensions: [".vue"], ecmaVersion: "latest", ecmaFeatures: { jsx: true } }, rules: { "no-undef": "off" } } ], rules: { "vue/no-v-html": "off", "vue/require-default-prop": "off", "vue/require-explicit-emits": "off", "vue/multi-word-component-names": "off", "@typescript-eslint/no-explicit-any": "off", // any "no-debugger": "off", "@typescript-eslint/explicit-module-boundary-types": "off", // setup() "@typescript-eslint/ban-types": "off", "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-non-null-assertion": "off", "vue/html-self-closing": [ "error", { html: { void: "always", normal: "always", component: "always" }, svg: "always", math: "always" } ], "@typescript-eslint/no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" } ], "no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" } ], "prettier/prettier": [ "error", { endOfLine: "auto" } ] } };