| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- module.exports = {
- root: true,
- env: {
- browser: true,
- node: true,
- es6: true,
- },
- parser: "vue-eslint-parser",
- parserOptions: {
- parser: "@typescript-eslint/parser",
- ecmaVersion: 2020,
- sourceType: "module",
- jsxPragma: "React",
- ecmaFeatures: {
- jsx: true,
- tsx: true,
- },
- },
- plugins: ["@typescript-eslint", "prettier", "import"],
- extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:vue/vue3-recommended", "prettier"],
- overrides: [
- {
- files: ["*.ts", "*.tsx", "*.vue"],
- rules: {
- "no-undef": "off",
- },
- },
- ],
- rules: {
- "no-restricted-syntax": ["error", "LabeledStatement", "WithStatement"],
- camelcase: ["error", { properties: "never" }],
- "no-var": "error",
- "no-empty": ["error", { allowEmptyCatch: true }],
- "no-void": "error",
- "prefer-const": ["warn", { destructuring: "all", ignoreReadBeforeAssign: true }],
- "prefer-template": "error",
- "object-shorthand": ["error", "always", { ignoreConstructors: false, avoidQuotes: true }],
- "block-scoped-var": "error",
- "no-constant-condition": ["error", { checkLoops: false }],
- "no-redeclare": "off",
- "@typescript-eslint/no-redeclare": "error",
- "@typescript-eslint/ban-ts-comment": "off",
- "@typescript-eslint/ban-types": "off",
- "@typescript-eslint/explicit-module-boundary-types": "off",
- "@typescript-eslint/no-empty-function": "off",
- "@typescript-eslint/no-explicit-any": "off",
- "@typescript-eslint/no-non-null-assertion": "off",
- "@typescript-eslint/no-non-null-asserted-optional-chain": "off",
- "@typescript-eslint/no-var-requires": "off",
- "@typescript-eslint/no-unused-vars": [
- "error",
- {
- argsIgnorePattern: "^_",
- varsIgnorePattern: "^_",
- },
- ],
- "no-unused-vars": [
- "error",
- {
- argsIgnorePattern: "^_",
- varsIgnorePattern: "^_",
- },
- ],
- // vue
- "vue/no-v-html": "off",
- "vue/require-default-prop": "off",
- "vue/require-explicit-emits": "off",
- "vue/multi-word-component-names": "off",
- // prettier
- "prettier/prettier": "error",
- // import
- "import/first": "error",
- "import/no-duplicates": "error",
- "import/order": [
- "error",
- {
- groups: ["builtin", "external", "internal", "parent", "sibling", "index", "object", "type"],
- pathGroupsExcludedImportTypes: ["type"],
- },
- ],
- },
- }
|