-
Notifications
You must be signed in to change notification settings - Fork 36
/
.eslintrc.js
55 lines (47 loc) · 1.9 KB
/
.eslintrc.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
module.exports = {
extends: ['react-app', 'airbnb', 'prettier', 'plugin:eslint-plugin/recommended'],
settings: {
'import/resolver': {
node: {
moduleDirectory: ['node_modules', 'src/'],
},
},
},
rules: {
// опция для проверки на абсолютный импорт
// выкидывает ошибку если испорт начинается с '../'
'no-restricted-imports': [
'error',
{
patterns: ['../../*'],
},
],
// 'no-unused-vars': 'off',
// делаем error, чтобы зачищать консоли, если где-то консоль важна,
// то правило нужно отключить на строке
'no-console': 'error',
// правило не нужно т.к. CRA настроен на автоимпорт реакта
'react/react-in-jsx-scope': 'off',
// todo нужно узнать что лучше off или error (по умолчанию error)
'import/prefer-default-export': 'off',
// иначе компонента выглядят уродски
'arrow-body-style': 'off',
// styled-components часто требует пробрасывания всех пропсов
'react/jsx-props-no-spreading': 'off',
// отключаем из-за использования immer в редьюсерах
// https://redux-toolkit.js.org/usage/immer-reducers#linting-state-mutations
'no-param-reassign': ['error', { props: true, ignorePropertyModificationsFor: ['state'] }],
'no-underscore-dangle': ['error', { allow: ['_id'] }],
// свойство появилось в cra@5
'react/function-component-definition': 'off',
},
overrides: [
{
files: ['**/*.stories.*'],
rules: {
'import/no-anonymous-default-export': 'off',
'react/jsx-props-no-spreading': 'off',
},
},
],
};