300x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 우테코
- storybook
- 우아한테크코스
- import정리
- 유틸함수
- importOrder
- 카페인
- 클로저
- vscode
- 크로마틱
- Husky
- chromatic
- react
- 이슈번호자동화
- 프로젝트
- webpack
- JavaScript
- eslint 자동화
- CSS
- IDL attributes
- 자바스크립트
- 협업
- git hooks
- 프로젝트 카페인
- string-width
- css instead of js
- eslint에러 자동fix
- prettier 자동화
- 성능 베이스캠프
- 클린코드
Archives
- Today
- Total
FEB:)DAIN
husky로 prettier, eslint 적용 자동화하기 본문
728x90
가끔 팀원 중 한 명이 prettier 적용을 하지 않고 push하는 일이 있었다. 그래서 이런 실수를 아예 방지하기 위해 husky를 이용해 prettier, eslint 적용을 자동화하기로 했다.
1) husky 설치
yarn add -D husky
// or
npm install --save-dev husky
devDependency로 husky를 설치한다. husky v5에서 잠깐 라이선스 문제가 있었지만, 지금은 괜찮다. 최신 버전으로 설치해도 된다.
1-1) script 설정 후 실행
//package.json
"scripts": {
...
"prepare": "cd .. && husky install frontend/.husky && cd frontend",
"prepare:mac": "cd .. && husky install frontend/.husky && chmod +x frontend/.husky/* && git update-index --chmod=+x && cd frontend"
},
명령어를 설정해 준 다음 실행해 준다.
- window의 경우, prepare
- mac의 경우, prepare:mac
❗루트 폴더가 아닌 frontend 폴더에만 husky를 설치했기 때문에 "cd .. && frontend/ .husky && cd frontend" 경로 설정을 따로 해주었다. 만약 루트 폴더에서 바로 husky를 설치했다면 "prepare": "husky install"만 해줘도 된다.
yarn prepare
yarn prepare:mac
// or
npm run prepare
npm run prepare:mac
2) lint-staged 설치
yarn add -D lint-staged
// or
npm install --save-dev lint-staged
3) package.json에 적용할 명령어와 확장자 설정
//package.json
...
"lint-staged": {
"**/*.{js,jsx,ts,tsx,md,json}": [
"eslint --fix",
"prettier --write"
]
}
lint-staged라는 명령어가 실행될 때, js,jsx,ts,tsx,md,json 확장자를 가진 파일들에 eslint와 prettier 적용을 해주는 코드이다.
4) .husky 폴더 안 pre-commit 파일에 명령어 입력
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
cd frontend
yarn lint-staged
// or
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
cd frontend
npx lint-staged
여기서도 역시 루트 폴더가 아닌 frontend 폴더 안에 package.json과 prettierrc를 사용하기 때문에 frontend 폴더로 이동하는 cd frontend 명령어를 넣어줬다.
728x90
'기록 > 프로젝트 카페인' 카테고리의 다른 글
[refactor] 간단하게 사용자 경험을 개선해보자 (0) | 2023.11.08 |
---|---|
프로젝트 카페인에서의 에러 처리 (0) | 2023.11.03 |
[refactor] Ref를 이용해 만든 팝업 메뉴 CSS만으로 구현하기 (1) | 2023.08.26 |
import를 깔끔하게 정리하고 싶어 (0) | 2023.07.15 |
[카페인] 전기차 충전소 지도 서비스 프로젝트 시작 (6/27~) (2) | 2023.06.29 |