Prettier
{
"tabWidth": 2,
"semi": true,
"singleQuote": false,
"trailingComma": "all",
"printWidth": 80,
"useTabs": false,
"endOfLine": "auto"
}
eslint
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"settings": {
"import/resolver": {
"typescript": true,
"node": true
}
},
"overrides": [],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module",
"project": "./tsconfig.json"
},
"plugins": ["react", "@typescript-eslint"],
"rules": {
// 섀도잉 변수 선언
"no-shadow": "warn",
// 리액트 17버전 이후 React import 안해도 되게
"react/react-in-jsx-scope": "off",
"react/jsx-uses-react": "off",
// 타입 임포트
"@typescript-eslint/consistent-type-imports": [
"error",
{
"prefer": "type-imports"
}
],
// 컴포넌트의 경우 화살표 함수로
"react/function-component-definition": [
2,
{ "namedComponents": "arrow-function" }
],
// import 정렬 single line
"sort-imports": [
"error",
{
"ignoreCase": true,
"ignoreDeclarationSort": true,
"ignoreMemberSort": false,
"allowSeparatedGroups": true
}
],
// import 순서
"import/order": [
"error",
{
"groups": [
["builtin", "external"],
"internal",
"parent",
"sibling",
"index"
],
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
],
"import/default": "off",
"import/no-named-as-default-member": "off",
"import/no-unresolved": "off"
}
}