-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathvue.json
235 lines (220 loc) · 7.7 KB
/
vue.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
{
"$schema": "https://json.schemastore.org/eslintrc.json",
"overrides": [
{
"files": ["*.vue", "*.js", "*.jsx", "*.ts", "*.tsx"],
"extends": [
"plugin:vuejs-accessibility/recommended",
"plugin:vue/vue3-essential"
],
"plugins": ["import", "@typescript-eslint", "sonar"],
"parserOptions": {
"parser": "@typescript-eslint/parser",
"ecmaVersion": "latest",
"extraFileExtensions": [".vue"]
},
"rules": {
"vue/block-order": "error",
"vue/no-lone-template": "error",
"vue/no-multiple-slot-args": "error",
"vue/no-v-html": "error",
"vue/order-in-components": "error",
"vue/this-in-template": "error",
"vue/attribute-hyphenation": "error",
"vue/component-definition-name-casing": "error",
"vue/first-attribute-linebreak": "error",
"vue/no-template-shadow": "error",
"vue/one-component-per-file": "error",
"vue/prop-name-casing": "error",
"vue/require-default-prop": "error",
"vue/require-explicit-emits": "error",
"vue/require-prop-types": "error",
"vue/v-on-style": "error",
"vue/v-slot-style": "error",
"vue/component-api-style": "error",
"vue/component-name-in-template-casing": "error",
"vue/component-options-name-casing": "error",
"vue/custom-event-name-casing": "error",
"vue/html-button-has-type": "error",
"vue/html-comment-content-newline": "error",
"vue/html-comment-content-spacing": "error",
"vue/html-comment-indent": "error",
"vue/match-component-import-name": "error",
"vue/new-line-between-multi-line-property": "error",
"vue/next-tick-style": "error",
"vue/no-boolean-default": "error",
"vue/no-deprecated-model-definition": "error",
"vue/no-duplicate-attr-inheritance": "error",
"vue/no-empty-component-block": "error",
"vue/no-multiple-objects-in-class": "error",
"vue/no-static-inline-styles": "error",
"vue/no-template-target-blank": "error",
"vue/no-this-in-before-route-enter": "error",
"vue/no-unused-emit-declarations": "error",
"vue/no-use-v-else-with-v-for": "error",
"vue/no-useless-mustaches": "error",
"vue/no-useless-v-bind": "error",
"vue/no-v-text": "error",
"vue/padding-line-between-blocks": "error",
"vue/prefer-prop-type-boolean-first": "error",
"vue/prefer-separate-static-class": "error",
"vue/prefer-true-attribute-shorthand": "error",
"vue/require-direct-export": "error",
"vue/require-emit-validator": "error",
"vue/require-explicit-slots": "error",
"vue/require-expose": "error",
"vue/require-macro-variable-name": "error",
"vue/require-name-property": "error",
"vue/require-typed-object-prop": "error",
"vue/require-typed-ref": "error",
"vue/v-for-delimiter-style": "error",
"vue/v-on-handler-style": "error",
"vue/no-ref-object-reactivity-loss": "error",
"vue/define-props-declaration": "error",
"vue/padding-lines-in-component-definition": "error",
"vue/no-root-v-if": "error",
"vue/no-setup-props-reactivity-loss": "error",
"vue/prefer-define-options": "error",
"vue/valid-define-options": "error",
"vue/static-class-names-order": "error",
"vue/camelcase": "error",
"vue/dot-notation": "error",
"vue/eqeqeq": "error",
"vue/no-console": "error",
"vue/no-constant-condition": "error",
"vue/no-empty-pattern": "error",
"vue/no-loss-of-precision": "error",
"vue/no-sparse-arrays": "error",
"vue/no-useless-concat": "error",
"vue/object-shorthand": "error",
"vue/prefer-template": "error",
"vue/define-macros-order": [
"error",
{
"order": [
"defineOptions",
"defineModel",
"defineProps",
"defineEmits",
"defineSlots"
],
"defineExposeLast": true
}
],
"vue/v-on-event-hyphenation": ["error", "always", { "autofix": true }],
"vue/html-self-closing": ["error", { "html": { "void": "always" } }],
"vue/match-component-file-name": [
"error",
{
"extensions": ["*.vue", "*.js", "*.jsx", "*.ts", "*.tsx"],
"shouldMatchCase": true
}
],
"vue/no-potential-component-option-typo": [
"error",
{ "presets": ["all"] }
],
"vue/no-irregular-whitespace": ["error", { "skipStrings": false }],
"vue/no-required-prop-with-default": ["error", { "autofix": true }],
"vue/attributes-order": ["error", { "alphabetical": true }],
"vue/define-emits-declaration": ["error", "type-literal"],
"vue/enforce-style-attribute": [
"error",
{ "allow": ["scoped", "module"] }
],
"vue/v-bind-style": [
"error",
"shorthand",
{ "sameNameShorthand": "always" }
],
"sonar/no-vue-bypass-sanitization": "error",
"import/no-unused-modules": "off",
"import/no-anonymous-default-export": "off",
"perfectionist/sort-objects": "off"
}
},
{
"files": ["nuxt.config.{js,cjs,mjs,ts,cts,mts}"],
"rules": {
"no-undef": "off"
}
},
{
"files": ["*.vue"],
"plugins": ["vue-scoped-css"],
"rules": {
"vue-scoped-css/no-deprecated-deep-combinator": "error",
"vue-scoped-css/no-parent-of-v-global": "error",
"vue-scoped-css/no-parsing-error": "error",
"vue-scoped-css/no-unused-keyframes": "error",
"vue-scoped-css/require-v-deep-argument": "error",
"vue-scoped-css/require-v-global-argument": "error",
"vue-scoped-css/require-v-slotted-argument": "error",
"vue-scoped-css/no-deprecated-v-enter-v-leave-class": "error",
"vue-scoped-css/require-selector-used-inside": "error",
"vue-scoped-css/v-deep-pseudo-style": "error",
"vue-scoped-css/v-global-pseudo-style": "error",
"vue-scoped-css/v-slotted-pseudo-style": "error",
"vue-scoped-css/enforce-style-type": [
"error",
{ "allows": ["scoped", "module"] }
],
"import/no-anonymous-default-export": [
"error",
{ "allowCallExpression": false, "allowObject": true }
],
"no-undef": "off",
"init-declarations": "off",
"@typescript-eslint/init-declarations": "off",
"import/unambiguous": "off",
"putout/putout": "off"
}
},
{
"files": ["**/composables/**/*.{js,ts}"],
"rules": {
"unicorn/consistent-function-scoping": "off"
}
},
{
"files": [
"**/pages/**/*.{js,ts,vue}",
"**/layouts/**/*.{js,ts,vue}",
"**/app.{js,ts,vue}",
"**/error.{js,ts,vue}"
],
"rules": {
"vue/multi-word-component-names": "off"
}
},
{
"files": ["**/layouts/**/*.{js,ts,vue}", "**/pages/**/*.{js,ts,vue}"],
"rules": {
"vue/no-multiple-template-root": "error"
}
},
{
"files": ["server/**/*.{js,ts}"],
"rules": {
"no-param-reassign": [
"error",
{
"props": true,
"ignorePropertyModificationsFor": [
"accumulator",
"ctx",
"context",
"req",
"request",
"res",
"response",
"$scope",
"staticContext",
"event"
]
}
]
}
}
]
}