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
- Husky
- importOrder
- eslint 자동화
- prettier 자동화
- 프로젝트 카페인
- IDL attributes
- chromatic
- react
- css instead of js
- 우아한테크코스
- vscode
- 클로저
- 성능 베이스캠프
- JavaScript
- 클린코드
- 협업
- 카페인
- import정리
- 크로마틱
- git hooks
- eslint에러 자동fix
- storybook
- CSS
- string-width
- 이슈번호자동화
- 유틸함수
- 자바스크립트
- 우테코
- webpack
- 프로젝트
Archives
- Today
- Total
FEB:)DAIN
git hooks(커밋 메시지에 이슈 번호 자동 입력)와 husky 충돌 개선 본문
728x90
2023.07.04 - [코딩/공부] - 깃 커밋 메시지에 이슈 번호를 자동으로 입력할 순 없을까?
2023.07.19 - [기록/프로젝트 카페인] - husky로 prettier, eslint 적용 자동화하기
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"만 해줘도 된다.
728x90
'코딩 > 트러블 슈팅' 카테고리의 다른 글
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 |