1. 프로젝트 생성
- 명령어 사용
npx create-react-app myapp --template=typescript
- tsconfig.json 수정
- compilerOptions에
“baseUrl”: “./src”
추가
- → 기본 절대 경로를 설정하는 구문
2. ESLint
1) vsc 익스텐션 - eslint 설치
2) package.json 수정
- CRA로 기본 생성된 코드 제거
- → lint 설정은 package.json에서 할게 아니라 .eslintrc.json에서 할 거라서!
"eslintConfig": { // 삭제
"extends": [ // 삭제
"react-app", // 삭제
"react-app/jest" // 삭제
] // 삭제
}, // 삭제
...
"scripts" : {
...
"lint": "eslint src/**/*.{js,jsx,ts,tsx,json}", // 추가
"lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx,json}'", // 추가
},
3) eslint 패키지 설치 / 설정 파일 생성
- 명령어 사용
npx eslint --init
npm i -D eslint
- 대화형 설정 → 아래와 같이 체크.
![](https://blog.kakaocdn.net/dn/bKVYTG/btsoxdJOzTO/87vNi6XItV6kxHkszCFWyK/img.png)
- 하고 나면 .eslintrc.json 생김
![](https://blog.kakaocdn.net/dn/RUsfn/btsoyYLCGVG/kankSV6X0sKWwDwHOR8Rg1/img.png)
4) 에어비앤비(airbnb) 규칙 적용하기
- 명령어 사용
npm i -D eslint-config-airbnb
- 위 구성을 사용하기 위한 dependencies 확인.
npm info "eslint-config-airbnb@latest" peerDependencies
- 모두 받아주기 → 명령어 사용
npm i -D eslint-config-airbnb-typescript
npm i -D eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-hooks
- .eslintrc.json 수정
{
...
"extends": [
"plugin:@typescript-eslint/recommended", // 기존(default)
"airbnb", //추가
"airbnb/hooks", //추가
"airbnb-typescript" //추가
],
"parserOptions" :{
...
"project" : "./tsconfig.json" //추가
},
"rules": {
"prettier/prettier": ["error", { "endOfLine": "auto" }]
}
}
- → extends 수정 및 parserOptions 수정
3. Prettier