123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /* eslint-env node */
- require("@rushstack/eslint-patch/modern-module-resolution");
- module.exports = {
- root: true,
- env: {
- browser: true,
- node: true,
- },
- extends: [
- "plugin:vue/essential",
- "eslint:recommended"
- ],
- parser: "vue-eslint-parser",
- rules: {
- "semi": ["error", "never"],
- "no-unused-vars": "off",
- "no-undef": "off",
- "@typescript-eslint/no-unused-vars": "off",
- "vue/max-attributes-per-line": "off",
- "vue/no-v-html": "off",
- "vue/require-prop-types": "off",
- "vue/require-default-prop": "off",
- "vue/multi-word-component-names": "off",
- "vue/prefer-import-from-vue": "off",
- // reactivity transform
- "vue/no-setup-props-destructure": "off",
- "vue/component-tags-order": [
- "error",
- {
- order: ["script", "template", "style"],
- },
- ],
- "vue/block-tag-newline": [
- "error",
- {
- singleline: "always",
- multiline: "always",
- },
- ],
- "vue/component-name-in-template-casing": ["error", "PascalCase"],
- "vue/component-options-name-casing": ["error", "PascalCase"],
- "vue/custom-event-name-casing": ["error", "camelCase"],
- "vue/define-macros-order": [
- "error",
- {
- order: ["defineProps", "defineEmits"],
- },
- ],
- "vue/html-comment-content-spacing": [
- "error",
- "always",
- {
- exceptions: ["-"],
- },
- ],
- "vue/no-restricted-v-bind": ["error", "/^v-/"],
- "vue/no-useless-v-bind": "error",
- "vue/no-v-text-v-html-on-component": "error",
- "vue/padding-line-between-blocks": ["error", "always"],
- "vue/prefer-separate-static-class": "error",
- // extensions
- "vue/array-bracket-spacing": ["error", "never"],
- "vue/arrow-spacing": ["error", { before: true, after: true }],
- "vue/block-spacing": ["error", "always"],
- "vue/brace-style": ["error", "stroustrup", { allowSingleLine: true }],
- "vue/comma-dangle": ["error", "always-multiline"],
- "vue/comma-spacing": ["error", { before: false, after: true }],
- "vue/comma-style": ["error", "last"],
- "vue/dot-location": ["error", "property"],
- "vue/dot-notation": ["error", { allowKeywords: true }],
- "vue/eqeqeq": ["error", "smart"],
- // 'vue/func-call-spacing': ['off', 'never'],
- "vue/key-spacing": ["error", { beforeColon: false, afterColon: true }],
- "vue/keyword-spacing": ["error", { before: true, after: true }],
- "vue/no-constant-condition": "warn",
- "vue/no-empty-pattern": "error",
- "vue/no-extra-parens": ["error", "functions"],
- "vue/no-irregular-whitespace": "error",
- "vue/no-loss-of-precision": "error",
- "vue/no-restricted-syntax": [
- "error",
- "DebuggerStatement",
- "LabeledStatement",
- "WithStatement",
- ],
- "vue/no-sparse-arrays": "error",
- "vue/object-curly-newline": [
- "error",
- { multiline: true, consistent: true },
- ],
- "vue/object-curly-spacing": ["error", "always"],
- "vue/object-property-newline": [
- "error",
- { allowMultiplePropertiesPerLine: true },
- ],
- "vue/object-shorthand": [
- "error",
- "always",
- {
- ignoreConstructors: false,
- avoidQuotes: true,
- },
- ],
- "vue/operator-linebreak": ["error", "before"],
- "vue/prefer-template": "error",
- "vue/quote-props": ["error", "consistent-as-needed"],
- "vue/space-in-parens": ["error", "never"],
- "vue/space-infix-ops": "error",
- "vue/space-unary-ops": ["error", { words: true, nonwords: false }],
- "vue/template-curly-spacing": "error",
- "vue/no-reserved-component-names": "off",
- "no-useless-escape": "off"
- },
- };
|