module.exports = { root: true, settings: { "import/ignore": ["@vueuse*"], }, env: { browser: true, node: true, }, parser: "vue-eslint-parser", parserOptions: { parser: "@typescript-eslint/parser", requireConfigFile: false, tsConfigRootDir: __dirname, project: ["./tsconfig.json"], extraFileExtensions: [".vue"], }, extends: [ "@nuxtjs/eslint-config-typescript", "plugin:nuxt/recommended", "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking", // "plugin:prettier/recommended", "prettier", ], // Re-add once we use nuxt bridge // See https://v3.nuxtjs.org/getting-started/bridge#update-nuxtconfig ignorePatterns: ["nuxt.config.js"], plugins: ["prettier"], // add your custom rules here rules: { "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", quotes: ["error", "double"], "vue/component-name-in-template-casing": ["error", "PascalCase"], camelcase: 0, "vue/singleline-html-element-content-newline": "off", "vue/multiline-html-element-content-newline": "off", "vue/no-mutating-props": "off", "vue/no-v-text-v-html-on-component": "warn", "vue/no-v-for-template-key-on-child": "off", "vue/valid-v-slot": [ "error", { allowModifiers: true, }, ], "@typescript-eslint/ban-ts-comment": [ "error", { "ts-ignore": "allow-with-description", }, ], "no-restricted-imports": [ "error", { paths: ["@vue/reactivity", "@vue/runtime-dom", "@vue/composition-api", "vue-demi"] }, ], // TODO Gradually activate all rules "@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-unsafe-call": "off", "@typescript-eslint/no-floating-promises": "off", "@typescript-eslint/no-explicit-any": "off", }, };