개발자로 일할때 협업하는 능력은 중요하다. 하나의 프로젝트에서 작업자마다 각자 다른 코딩 스타일을 가지고 있고, 그것이 코드에 드러난다면 이 프로젝트를 제 3자가 읽기도 어려워지며, 팀원들끼리도 다른 팀원들이 작성한 코드를 읽고 이해하기가 힘들어진다. 때문에 다른 사람들과 협업을 할때 코딩하는 스타일이나 컨벤션을 지키는 것이 불필요한 시간을 줄일 수 있다.
이런 이유로 react + typescript 환경에서 개발을 할때 반복해서 셋팅하는 일을 줄이고 협업을 대비하여 Linter로 ESLint를, Code Formatter 로는 Prettier를 사용하여 보일러 플레이트를 만들어 보았다.
$npx create-react-app 폴더명 —template typescript
tsconfig.json이 기본으로 설정이 되어있다. 필요시 수정해서 사용
npm install eslint --save-dev
npm install prettier --save-dev
npm install eslint-config-prettier --save-dev
.prettierrc.확장자
파일을 통해서 설정을 할 수 있음{
"jsxSingleQuote": true, "" => ''
"printWidth": 80, // 줄 바꿈 할 폭 길이
}
{
"extends": ["react-app", "eslint:recommended", "prettier"],
"rules": {
"no-var": "error", // var 금지
"no-multiple-empty-lines": "error", // 여러 줄 공백 금지
"no-console": ["error", { "allow": ["warn", "error", "info"] }], // console.log() 금지
"eqeqeq": "error", // 일치 연산자 사용 필수
"dot-notation": "error", // 가능하다면 dot notation 사용
"no-unused-vars": "error" // 사용하지 않는 변수 금지
}
}
npm install husky --save-dev
npx husky install
npx husky install
: husky에 등록된 hook을 실제 .git에 적용시키기 위한 스크립트husky install
이 될 수 있도록 하는 설정// package.json
{
"scripts": {
"postinstall": "husky install", // npm i 후 자동으로 설치하게 하는 옵션
"format": "prettier --cache --write .",
"lint": "eslint --cache .",
},
}
npx husky add .husky/pre-commit "npm run format"
npx husky add .husky/pre-push "npm run lint"
레파지토리 셋팅에 들어가서 Template repository 옵션에 체크 해주면 레포지토리를 새로 만들때
이렇게 손쉽게 만들어 놓은 것을 사용할 수 있다.