-
-
Notifications
You must be signed in to change notification settings - Fork 10
/
eslint.config.js
111 lines (94 loc) · 2.5 KB
/
eslint.config.js
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
import antfu from '@antfu/eslint-config'
export default antfu({
typescript: true,
vue: true,
jsonc: false,
yaml: false,
ignores: [
'**/dist',
'**/node_modules',
],
// 在 eslint cli 指定的目录中过滤如下模式文件
files: [
'**/*.ts',
'**/*.js',
'**/*.vue',
],
stylistic: {
indent: 2,
quotes: 'single',
jsx: false,
},
rules: {
// 顶层函数允许使用箭头函数
'antfu/top-level-function': 'off',
// 断行符号使用 CRLF
'style/linebreak-style': ['error', 'windows'],
// 文件末尾保留空行
'eol-last': 'error',
// 确保命名导入与命名导出相对应
'import/named': 'error',
},
overrides: {
javascript: {
// 一般情况下不允许使用 console
'no-console': 'warn',
// 默认参数必须放在最后
'default-param-last': 'error',
},
typescript: {
// 一般情况下不允许使用 any
'ts/no-explicit-any': 'warn',
// 命名规范
'ts/naming-convention': [
'error',
// TS interface 只允许大驼峰
{
selector: 'interface',
format: ['PascalCase'],
leadingUnderscore: 'forbid',
},
// TS Type 只允许大驼峰
{
selector: 'typeLike',
format: ['PascalCase'],
leadingUnderscore: 'forbid',
},
// 变量只允许大小驼峰、全大写下划线、全小写下划线
{
selector: 'variable',
format: ['PascalCase', 'camelCase', 'UPPER_CASE', 'snake_case'],
leadingUnderscore: 'allow',
trailingUnderscore: 'allow',
},
],
// 禁止未使用的值
'ts/no-unused-vars': [
'error',
{
args: 'all',
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
destructuredArrayIgnorePattern: '^_',
},
],
},
vue: {
// 组件名称至少由 2 个单词组成
'vue/multi-word-component-names': 'error',
// 组件定义名称只允许大驼峰
'vue/component-definition-name-casing': ['error', 'PascalCase'],
// 组件属性名称只允许小驼峰
'vue/prop-name-casing': ['error', 'camelCase'],
// 允许在相同作用域范围从对象获取响应值
'vue/no-ref-object-reactivity-loss': 'off',
// 禁止未使用的值
'vue/no-unused-vars': [
'error',
{
ignorePattern: '^_',
},
],
},
},
})