@@ -4,9 +4,18 @@ module.exports = {
44 node : true ,
55 } ,
66 extends : [
7- 'airbnb-base' ,
87 'eslint:recommended' ,
98 'plugin:vue/essential' ,
9+ 'plugin:@typescript-eslint/recommended' ,
10+ '@vue/typescript/recommended' ,
11+ 'prettier' ,
12+ './.eslintrc-auto-import.json' ,
13+ ] ,
14+ ignorePatterns : [
15+ '.eslintrc.js' ,
16+ 'vite.build.config.ts' ,
17+ 'vite.config.ts' ,
18+ '*.bk.vue' ,
1019 ] ,
1120 overrides : [
1221 {
@@ -18,24 +27,36 @@ module.exports = {
1827 } ,
1928 } ,
2029 ] ,
21- parser : 'vue-eslint-parser' ,
30+ globals : {
31+ Entry : true ,
32+ } ,
2233 parserOptions : {
23- ecmaVersion : 12 ,
24- parser : '@babel/eslint-parser' ,
25- requireConfigFile : false ,
26- sourceType : 'module' ,
34+ parser : '@typescript-eslint/parser' ,
2735 } ,
2836 plugins : [
37+ '@typescript-eslint' ,
2938 'import' ,
39+ 'prettier' ,
3040 'vue' ,
31- '@babel' ,
3241 ] ,
42+ root : true ,
3343 settings : {
3444 'import/resolver' : {
3545 'babel-module' : { } ,
3646 } ,
3747 } ,
3848 rules : {
49+ '@typescript-eslint/ban-ts-comment' : 0 ,
50+ '@typescript-eslint/ban-types' : [
51+ 'error' ,
52+ {
53+ 'extendDefaults' : true ,
54+ 'types' : {
55+ '{}' : false ,
56+ }
57+ } ,
58+ ] ,
59+ '@typescript-eslint/no-empty-function' : 0 ,
3960 'brace-style' : [ 'error' , 'stroustrup' ] ,
4061 'default-case' : [
4162 'error' , {
@@ -44,39 +65,39 @@ module.exports = {
4465 ] ,
4566 'func-names' : [ 'error' , 'never' ] ,
4667 'function-paren-newline' : 0 ,
47- 'implicit-arrow-linebreak' : [ 'warn' , 'beside' ] ,
48- 'import/no-extraneous-dependencies' : 0 ,
4968 'import/no-self-import' : 0 ,
69+ 'import/no-extraneous-dependencies' : 0 ,
70+ 'implicit-arrow-linebreak' : [ 'warn' , 'beside' ] ,
5071 indent : [ 2 , 'tab' , { SwitchCase : 1 } ] ,
72+ 'no-tabs' : [ 0 , { allowIndentationTabs : true } ] ,
5173 'linebreak-style' : 0 ,
5274 'max-len' : 0 ,
75+ 'no-else-return' : [ 'error' , { allowElseIf : true } ] ,
5376 'no-console' : [ 'warn' , { allow : [ 'warn' , 'error' , 'info' , 'trace' ] } ] ,
5477 'no-const-assign' : 'error' ,
5578 'no-debugger' : 0 ,
56- 'no-else-return' : [ 'error' , { allowElseIf : true } ] ,
5779 'no-new' : 0 ,
80+ 'no-undef' : 0 ,
81+ 'no-unused-vars' : 1 ,
82+ 'no-use-before-define' : 0 ,
83+ 'no-useless-escape' : 0 ,
5884 'no-param-reassign' : [
5985 'error' , {
60- ignorePropertyModificationsFor : [ 'field' , 'model' , 'el' , 'item' , 'state' , 'Vue' , 'vue' ] ,
6186 props : true ,
87+ ignorePropertyModificationsFor : [ 'field' , 'model' , 'el' , 'item' , 'state' , 'Vue' , 'vue' ] ,
6288 } ,
6389 ] ,
64- 'no-plusplus' : [
65- 'error' , { allowForLoopAfterthoughts : true } ,
66- ] ,
67- 'no-tabs' : [ 0 , { allowIndentationTabs : true } ] ,
68- 'no-undef' : 0 ,
6990 'no-underscore-dangle' : [
7091 'error' , {
7192 allow : [ '_data' ] ,
7293 allowAfterThis : true ,
7394 } ,
7495 ] ,
75- 'no-unused-vars ' : 1 ,
76- 'no-use-before-define' : 0 ,
77- 'no-useless-escape' : 0 ,
96+ 'no-plusplus ' : [
97+ 'error' , { allowForLoopAfterthoughts : true } ,
98+ ] ,
7899 'object-curly-newline' : [ 'error' , {
79- ObjectPattern : { multiline : true } ,
100+ ObjectPattern : { multiline : false } ,
80101 } ] ,
81102 'operator-linebreak' : [ 'error' , 'after' ] ,
82103 'prefer-destructuring' : [
@@ -90,12 +111,12 @@ module.exports = {
90111 ] ,
91112 'space-before-function-paren' : [ 'error' , {
92113 anonymous : 'never' ,
93- asyncArrow : 'always' ,
94114 named : 'never' ,
115+ asyncArrow : 'always' ,
95116 } ] ,
96117 'vue/attributes-order' : [ 'error' , {
97- alphabetical : true ,
98- order : [
118+ ' alphabetical' : true ,
119+ ' order' : [
99120 'DEFINITION' ,
100121 'LIST_RENDERING' ,
101122 'CONDITIONALS' ,
@@ -118,13 +139,13 @@ module.exports = {
118139 'vue/no-v-for-template-key' : 0 ,
119140 'vue/no-v-html' : 0 ,
120141 'vue/singleline-html-element-content-newline' : 0 ,
121- // 'vue/sort-keys': ['error', 'asc', {
122- // caseSensitive: true,
123- // ignoreChildrenOf: ['extend', 'model', 'defineProps'],
124- // ignoreGrandchildrenOf: ['computed', 'directives', 'inject', 'props', 'watch', 'defineProps'],
125- // minKeys: 2,
126- // natural: true,
127- // }],
142+ 'vue/sort-keys' : [ 'error' , 'asc' , {
143+ caseSensitive : true ,
144+ ignoreChildrenOf : [ 'model' , 'defineProps' ] ,
145+ ignoreGrandchildrenOf : [ 'computed' , 'directives' , 'inject' , 'props' , 'watch' , 'defineProps' ] ,
146+ minKeys : 2 ,
147+ natural : true ,
148+ } ] ,
128149 'vue/valid-template-root' : 0 ,
129150 } ,
130151} ;
0 commit comments