목차
React + TS에서 airbnb형식 적용하기
설치방법
npm install --save-dev eslint prettier eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-prettier eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import
.eslintrc.json
{
"extends": [
"airbnb",
"airbnb/hooks",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"plugins": ["@typescript-eslint", "prettier"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2020,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
},
"project": "./tsconfig.json"
},
"rules": {
"prettier/prettier": [
"error",
{
"endOfLine": "auto",
"singleQuote": true,
"trailingComma": "all",
"tabWidth": 2,
"useTabs": false // 추가: 탭 대신 공백 사용
}
],
"react/react-in-jsx-scope": "off",
"import/no-extraneous-dependencies": ["error", { "devDependencies": true }],
"@typescript-eslint/explicit-module-boundary-types": "off",
"react/jsx-filename-extension": [1, { "extensions": [".tsx", ".jsx"] }],
"import/extensions": [
"error",
"ignorePackages",
{
"js": "never",
"jsx": "never",
"ts": "never",
"tsx": "never"
}
]
},
"settings": {
"react": {
"version": "detect"
},
"import/resolver": {
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
},
"typescript": {
"alwaysTryTypes": true,
"project": "./tsconfig.json"
}
}
}
}
.prettierrc
{
"singleQuote": true,
"trailingComma": "all",
"printWidth": 80,
"tabWidth": 2,
"semi": true,
"endOfLine": "auto"
}
VS Code에서 적용하려면?
.vscode/settings.json
{
"editor.formatOnSave": true,
"editor.tabSize": 2, // 탭 크기를 2로 설정
"editor.insertSpaces": true, // 탭 대신 공백 사용
"editor.detectIndentation": false, // 파일 내용에 따라 자동으로 들여쓰기 감지 비활성화
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"prettier.requireConfig": true
}
'프론트엔드 > 리액트' 카테고리의 다른 글
[React,TS] 라우팅 코드 컨벤션 (0) | 2024.05.28 |
---|---|
[React,TS] React프로젝트 TS세팅 하기 (0) | 2024.05.28 |
[React,Next] forwardRef사용하기 ( 개인기록 ) (0) | 2024.05.27 |
[React] useCallback 이란? (0) | 2024.05.20 |
[React] useMemo란? (0) | 2024.05.20 |