Skip to content

Commit ae24fe9

Browse files
committed
feat(vue): enable some rules
1 parent ca139ca commit ae24fe9

File tree

1 file changed

+37
-12
lines changed

1 file changed

+37
-12
lines changed

src/configs/vue.ts

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,13 @@ export async function vue(
117117
: ['template', 'script', 'style'],
118118
},
119119
],
120+
// 'vue/component-api-style': ['warn', ['script-setup', 'composition']],
120121
'vue/component-name-in-template-casing': ['error', 'PascalCase'],
121122
'vue/component-options-name-casing': ['error', 'PascalCase'],
123+
// this is deprecated
124+
'vue/component-tags-order': 'off',
122125
'vue/custom-event-name-casing': ['error', 'camelCase'],
126+
// 'vue/define-emits-declaration': ['warn', 'type-based'],
123127
'vue/define-macros-order': [
124128
'error',
125129
{
@@ -131,31 +135,35 @@ export async function vue(
131135
],
132136
},
133137
],
138+
// 'vue/define-props-declaration': ['warn', 'type-based'],
134139
'vue/dot-location': ['error', 'property'],
135140
'vue/dot-notation': ['error', { allowKeywords: true }],
136141
'vue/eqeqeq': ['error', 'smart'],
137142
'vue/html-indent': ['error', indent],
143+
// 'vue/html-self-closing': [
144+
// 'error',
145+
// {
146+
// html: {
147+
// component: 'always',
148+
// normal: 'always',
149+
// void: 'any',
150+
// },
151+
// math: 'always',
152+
// svg: 'always',
153+
// },
138154
'vue/html-quotes': ['error', 'double'],
139-
'vue/html-self-closing': [
140-
'error',
141-
{
142-
html: {
143-
component: 'always',
144-
normal: 'always',
145-
void: 'any',
146-
},
147-
math: 'always',
148-
svg: 'always',
149-
},
150-
],
155+
// ],
151156
'vue/max-attributes-per-line': 'off',
152157
'vue/multi-word-component-names': 'off',
158+
// 'vue/next-tick-style': ['warn', 'promise'],
153159
'vue/no-constant-condition': 'warn',
154160
'vue/no-dupe-keys': 'off',
161+
'vue/no-duplicate-attr-inheritance': 'warn',
155162
'vue/no-empty-pattern': 'error',
156163
'vue/no-extra-parens': ['error', 'functions'],
157164
'vue/no-irregular-whitespace': 'error',
158165
'vue/no-loss-of-precision': 'error',
166+
'vue/no-required-prop-with-default': 'warn',
159167
'vue/no-restricted-syntax': [
160168
'error',
161169
'DebuggerStatement',
@@ -165,9 +173,14 @@ export async function vue(
165173
'vue/no-restricted-v-bind': ['error', '/^v-/'],
166174
'vue/no-setup-props-reactivity-loss': 'off',
167175
'vue/no-sparse-arrays': 'error',
176+
'vue/no-unsupported-features': 'warn',
177+
'vue/no-unused-emit-declarations': 'warn',
168178
'vue/no-unused-refs': 'error',
179+
'vue/no-use-v-else-with-v-for': 'error',
180+
'vue/no-useless-mustaches': 'warn',
169181
'vue/no-useless-v-bind': 'error',
170182
'vue/no-v-html': 'off',
183+
'vue/no-v-text': 'warn',
171184
'vue/object-shorthand': [
172185
'error',
173186
'always',
@@ -176,10 +189,21 @@ export async function vue(
176189
ignoreConstructors: false,
177190
},
178191
],
192+
'vue/prefer-define-options': 'warn',
179193
'vue/prefer-separate-static-class': 'error',
180194
'vue/prefer-template': 'error',
181195
'vue/prop-name-casing': ['error', 'camelCase'],
182196
'vue/require-default-prop': 'off',
197+
'vue/require-macro-variable-name': [
198+
'warn',
199+
{
200+
defineEmits: 'emit',
201+
defineProps: 'props',
202+
defineSlots: 'slots',
203+
useAttrs: 'attrs',
204+
useSlots: 'slots',
205+
},
206+
],
183207
'vue/require-prop-types': 'off',
184208
'vue/space-infix-ops': 'error',
185209
'vue/space-unary-ops': ['error', { nonwords: false, words: true }],
@@ -205,6 +229,7 @@ export async function vue(
205229
'vue/comma-dangle': ['error', 'always-multiline'],
206230
'vue/comma-spacing': ['error', { after: true, before: false }],
207231
'vue/comma-style': ['error', 'last'],
232+
'vue/html-comment-content-newline': 'warn',
208233
'vue/html-comment-content-spacing': [
209234
'error',
210235
'always',

0 commit comments

Comments
 (0)