-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc.json
131 lines (129 loc) · 4.01 KB
/
.eslintrc.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
{
"env": {
"browser": true,
"es2022": true
},
"extends": [
"eslint:recommended",
"plugin:@next/next/recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
// "plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:jsx-a11y/recommended",
"plugin:tailwindcss/recommended"
// "plugin:prettier/recommended"
],
"plugins": [
"react",
"react-hooks",
"@typescript-eslint",
"jsx-a11y",
"import",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
"no-console": "off",
"react/prop-types": "off",
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off",
"react-hooks/exhaustive-deps": "warn", // hooks의 의존성배열이 충분하지 않을때 강제로 의존성을 추가하는 규칙을 완화
"jsx-a11y/click-events-have-key-events": "warn",
"jsx-a11y/interactive-supports-focus": "warn",
"prettier/prettier": "off",
"no-unused-vars": "off", // 사용하지 않는 변수가 있을때 빌드에러가 나던 규칙 해제
"unused-imports/no-unused-vars": "off",
"unused-imports/no-unused-imports": "off",
"react/no-children-prop": "off",
"react/jsx-props-no-spreading": "off", // props spreading을 허용하지 않는 규칙 해제 [1, { "custom": "ignore" }]
"jsx-a11y/no-noninteractive-element-interactions": "off",
"react/jsx-filename-extension": [
2,
{"extensions": [".js", ".jsx", ".ts", ".tsx"]}
],
"import/extensions": 0,
// "no-use-before-define": "off",
"import/no-unresolved": 0,
"import/no-extraneous-dependencies": 0,
"no-shadow": 0,
"'@typescript-eslint/explicit-module-boundary-types": 0,
"linebreak-style": 0,
"jsx-quotes": ["error", "prefer-single"],
// "indent": ["error", 2],
// "linebreak-style": ["error", "windows"],
// "linebreak-style": ["error", "unix"],
// "quotes": ["error", "single"],
"no-undef": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/explicit-function-return-type": "off", // Consider using explicit annotations for object literals and function return types even when they can be inferred.
"@typescript-eslint/no-explicit-any": 0,
// "@typescript-eslint/no-var-requires": "off",
"no-empty": "warn",
"import/prefer-default-export": ["off"], // export const 문을 쓸때 에러를 내는 규칙 해제
// "@typescript-eslint/ban-types": [
// "error",
// {
// "extendDefaults": true,
// "types": {
// "{}": false
// }
// }
// ],
// "react/jsx-sort-props": [
// "warn",
// {
// "callbacksLast": true,
// "shorthandFirst": true,
// "noSortAlphabetically": true,
// "reservedFirst": true
// }
// ]
"tailwindcss/no-custom-classname": "off",
"import/order": [
"error",
{
"groups": ["builtin", "external", "internal"], // 그룹핑 순서
"pathGroups": [
{
"pattern": "react",
"group": "builtin",
"position": "before"
}
],
"pathGroupsExcludedImportTypes": ["react"], // external로 간주되어 alias 적용안되는 문제 해결
"alphabetize": {
"order": "asc",
"caseInsensitive": true // 대문자 우선
},
"newlines-between": "always" // 그룹별 모두 한줄 띄우기
}
]
},
"settings": {
"react": {
"version": "detect"
}
// "import/parsers": {
// "@typescript-eslint/parser": [".ts", ".tsx"]
// },
// "import/resolver": {
// "typescript": "./tsconfig.json"
// }
// "import/resolver": {
// "node": {
// "extensions": [".js", ".jsx", ".ts", ".tsx"]
// }
// }
// "mdx/code-blocks": true,
// "mdx/language-mapper": {}
}
}