일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- importOrder
- eslint 자동화
- 유틸함수
- 자바스크립트
- 이슈번호자동화
- chromatic
- react
- CSS
- JavaScript
- import정리
- webpack
- 크로마틱
- prettier 자동화
- vscode
- 클린코드
- 성능 베이스캠프
- Husky
- 프로젝트
- string-width
- css instead of js
- IDL attributes
- git hooks
- eslint에러 자동fix
- 협업
- 우아한테크코스
- 프로젝트 카페인
- storybook
- 클로저
- 카페인
- 우테코
- Today
- Total
FEB:)DAIN
git hooks(커밋 메시지에 이슈 번호 자동 입력)와 husky 충돌 개선 본문
![](https://blog.kakaocdn.net/dn/bEt4cj/btsn89gCmy2/fzKUVvPNA6GXIKIUb4jACK/img.png)
2023.07.04 - [코딩/공부] - 깃 커밋 메시지에 이슈 번호를 자동으로 입력할 순 없을까?
깃 커밋 메시지에 이슈 번호를 자동으로 입력할 순 없을까?
프로젝트 브랜치명 컨벤션이 feat/이슈번호여서, 브랜치명에서 이슈번호만 가져온 다음 커밋할 때마다 커밋 메시지 아래단(footer)에 이슈 번호를 자동으로 입력해주고 싶었다. 자동으로 입력된다
feb-dain.tistory.com
2023.07.19 - [기록/프로젝트 카페인] - husky로 prettier, eslint 적용 자동화하기
husky로 prettier, eslint 적용 자동화하기
가끔 팀원 중 한 명이 prettier 적용을 하지 않고 push하는 일이 있었다. 그래서 이런 실수를 아예 방지하기 위해 husky를 이용해 prettier, eslint 적용을 자동화하기로 했다. 1) husky 설치 yarn add -D husky // o
feb-dain.tistory.com
git hooks를 이용해 커밋 메시지에 이슈 번호가 자동으로 입력되도록 설정했는데, husky를 사용하면서 적용 안 되는 문제가 발생했다. husky가 git hook을 이용해 원하는 동작을 하도록 도와주는 라이브러리라 그런 것 같다.
해결 방법은 간단하다. (알아내는 과정은 절대 간단하지 않았지만...)
.githooks 파일에서 사용하고 있던 commit-msg 파일을 .husky 폴더에 옮겨주거나 추가해 주면 된다.
#!/bin/bash
COMMIT_MESSAGE_FILE_PATH=$1
MESSAGE=$(cat "$COMMIT_MESSAGE_FILE_PATH")
if [[ $(head -1 "$COMMIT_MESSAGE_FILE_PATH") == '' ]]; then
exit 0
fi
POSTFIX=$(git branch | grep '\*' | sed 's/* //' | sed 's/^.*\///' | sed 's/^\([^-]*-[^-]*\).*/\1/')
COMMIT_SOURCE=$2
CURRENT_BRANCH=$(git branch --show-current)
if [[ "$CURRENT_BRANCH" != "$POSTFIX" ]] && [ "$COMMIT_SOURCE" != "merge" ] && [[ "$MESSAGE" != *"[#$POSTFIX]"* ]]; then
printf "%s\n\n[#%s]" "$MESSAGE" "$POSTFIX" > "$COMMIT_MESSAGE_FILE_PATH"
fi
두 번째 블로그 포스팅(husky로 prettier, eslint 적용 자동화하기)대로 husky 설정을 해줬다면 문제가 생기지 않았을테지만, 만약 포스팅대로 husky 설정을 하지 않았다면 package.json 파일에 아래 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"
},
그리고 prepare 또는 prepare:mac 실행하면 끝이다.
yarn prepare
yarn prepare:mac
// or
npm run prepare
npm run prepare:mac
- window의 경우, prepare
- mac의 경우, prepare:mac
❗루트 폴더가 아닌 frontend 폴더에만 husky를 설치했기 때문에 "cd .. && frontend/ .husky && cd frontend" 경로 설정을 따로 해주었다. 만약 루트 폴더에서 바로 husky를 설치했다면 "prepare": "husky install"만 해줘도 된다.
'코딩 > 트러블 슈팅' 카테고리의 다른 글
Manifest: Line: 1, column: 1, Syntax error (0) | 2023.09.11 |
---|---|
[스토리북 에러] var stringWidth = require('string-width') Error [ERR_REQUIRE_ESM] (0) | 2023.08.10 |
storybook에서 msw 사용하기 (1) | 2023.07.30 |
storybook에서 svg 오류 개선 (0) | 2023.07.25 |
import React from 'react' 생략하는 법 (0) | 2023.07.01 |