React
cra 프로젝트에 tslint와 prettier 적용하기
현재 프로젝트를 진행할 때 prettier formatter를 사용하고있다.
다양한 lint들이 많고 react쪽에서는 airbnb룰을 많이 사용하는데 이 글에서는 최대한 간단한 rule만 적용하도록 한다.
npm install --save lint-staged husky
npm install --save-dev prettier tslint-config-prettier tslint-plugin-prettier
# or
yarn add lint-staged husky
yarn add --dev prettier tslint-config-prettier tslint-plugin-prettier
.prettierrc
를 사용하여 formatter의 룰을 정의해준다.
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"bracketSpacing": false,
"jsxBracketSameLine": false,
"proseWrap": "always"
}
프로젝트에서 prettier를 사용할 때 .vscode 폴더의 settings.json을 통해 저장할 때마다 formatting되도록 세팅하였는데 개발 중 저장할 때 마다 줄바뀜이나 여러가지 불편한 점들을 느껴 git commit시에 prettier가 작동하도록 설정하였다.
husky의 hooks를 사용하여 git commit을 하면 prettier 적용
package.json
에 다음과 같이 작성한다.
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
}
lint-staged 를 사용하여 prettier를 적용 할 대상들을 설정한다.
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [
"prettier --write",
"git add"
]
}
https://github.com/prettier/tslint-config-prettier 참조하여 적용